From d1fd54c8da40c9e7c1e7821259c39af947529f77 Mon Sep 17 00:00:00 2001 From: hansmuller Date: Thu, 16 Oct 2014 15:21:26 -0700 Subject: Mojo JS Bindings: add support for associative arrays (Mojo map type) Currently there's only a limited test for the new type. More complete testing to come in a followup patch. BUG=423017 Review URL: https://codereview.chromium.org/654843005 Cr-Commit-Position: refs/heads/master@{#299992} --- gin/test/expect.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'gin/test') diff --git a/gin/test/expect.js b/gin/test/expect.js index b5e0f21..597b5b1 100644 --- a/gin/test/expect.js +++ b/gin/test/expect.js @@ -82,7 +82,7 @@ define(function() { aStack.push(a); bStack.push(b); var size = 0, result = true; - // Recursively compare objects and arrays. + // Recursively compare Maps, objects and arrays. if (className == '[object Array]' || isArrayBufferClass(className)) { // Compare array lengths to determine if a deep comparison is necessary. size = a.length; @@ -94,6 +94,16 @@ define(function() { break; } } + } else if (className == '[object Map]') { + result = a.size == b.size; + if (result) { + var entries = a.entries(); + for (var e = entries.next(); result && !e.done; e = entries.next()) { + var key = e.value[0]; + var value = e.value[1]; + result = b.has(key) && eq(value, b.get(key), aStack, bStack); + } + } } else { // Deep compare objects. for (var key in a) { -- cgit v1.1