diff --git a/browser/devtools/debugger/VariablesView.jsm b/browser/devtools/debugger/VariablesView.jsm index cc50de2eb35e..d1521ee0404d 100644 --- a/browser/devtools/debugger/VariablesView.jsm +++ b/browser/devtools/debugger/VariablesView.jsm @@ -61,7 +61,7 @@ VariablesView.prototype = { */ empty: function VV_empty(aTimeout = LAZY_EMPTY_DELAY) { // If there are no items in this container, emptying is useless. - if (!this._store.size()) { + if (!this._store.size) { return; } // Check if this empty operation may be executed lazily. @@ -110,7 +110,7 @@ VariablesView.prototype = { this._parent.removeChild(prevList); this._parent.appendChild(currList); - if (!this._store.size()) { + if (!this._store.size) { this._appendEmptyNotice(); } }.bind(this), aTimeout); diff --git a/browser/devtools/debugger/debugger-panes.js b/browser/devtools/debugger/debugger-panes.js index ddb6e260b075..9373da055882 100644 --- a/browser/devtools/debugger/debugger-panes.js +++ b/browser/devtools/debugger/debugger-panes.js @@ -812,7 +812,7 @@ create({ constructor: GlobalSearchView, proto: MenuContainer.prototype }, { */ _fetchSources: function DVGS__fetchSources(aFetchCallback, aFetchedCallback, aLocations) { // If all the sources were already fetched, then don't do anything. - if (this._cache.size() == aLocations.length) { + if (this._cache.size == aLocations.length) { aFetchedCallback(); return; } @@ -840,7 +840,7 @@ create({ constructor: GlobalSearchView, proto: MenuContainer.prototype }, { this._cache.set(aLocation, aContents); // Check if all sources were fetched and stored in the cache. - if (this._cache.size() == this._sourcesCount) { + if (this._cache.size == this._sourcesCount) { this._onFetchSourcesFinished(); } }, @@ -1151,7 +1151,7 @@ GlobalResults.prototype = { /** * Gets the number of source results in this store. */ - get itemCount() this._store.size(), + get itemCount() this._store.size, _store: null }; diff --git a/browser/devtools/debugger/test/browser_dbg_scripts-searching-05.js b/browser/devtools/debugger/test/browser_dbg_scripts-searching-05.js index 4aeda04f3f1d..6119a8ccdaaa 100644 --- a/browser/devtools/debugger/test/browser_dbg_scripts-searching-05.js +++ b/browser/devtools/debugger/test/browser_dbg_scripts-searching-05.js @@ -134,7 +134,7 @@ function testLocationChange() window.addEventListener("Debugger:GlobalSearch:CacheCleared", function _onCacheCleared(aEvent) { window.removeEventListener(aEvent.type, _onCacheCleared); - is(gSearchView._cache.size(), 0, + is(gSearchView._cache.size, 0, "The scripts sources cache for global searching should be cleared after a page navigation.") cacheCleared = true; diff --git a/js/src/builtin/MapObject.cpp b/js/src/builtin/MapObject.cpp index f29e78f88a8b..967c94ba4826 100644 --- a/js/src/builtin/MapObject.cpp +++ b/js/src/builtin/MapObject.cpp @@ -947,8 +947,12 @@ Class MapObject::class_ = { mark }; +JSPropertySpec MapObject::properties[] = { + JS_PSG("size", size, 0), + JS_PS_END +}; + JSFunctionSpec MapObject::methods[] = { - JS_FN("size", size, 0, 0), JS_FN("get", get, 1, 0), JS_FN("has", has, 1, 0), JS_FN("set", set, 2, 0), @@ -960,7 +964,7 @@ JSFunctionSpec MapObject::methods[] = { static JSObject * InitClass(JSContext *cx, Handle global, Class *clasp, JSProtoKey key, Native construct, - JSFunctionSpec *methods) + JSPropertySpec *properties, JSFunctionSpec *methods) { Rooted proto(cx, global->createBlankPrototype(cx, clasp)); if (!proto) @@ -970,7 +974,7 @@ InitClass(JSContext *cx, Handle global, Class *clasp, JSProtoKey Rooted ctor(cx, global->createConstructor(cx, construct, ClassName(key, cx), 1)); if (!ctor || !LinkConstructorAndPrototype(cx, ctor, proto) || - !DefinePropertiesAndBrand(cx, proto, NULL, methods) || + !DefinePropertiesAndBrand(cx, proto, properties, methods) || !DefineConstructorAndPrototype(cx, global, key, ctor, proto)) { return NULL; @@ -982,7 +986,7 @@ JSObject * MapObject::initClass(JSContext *cx, JSObject *obj) { Rooted global(cx, &obj->asGlobal()); - return InitClass(cx, global, &class_, JSProto_Map, construct, methods); + return InitClass(cx, global, &class_, JSProto_Map, construct, properties, methods); } template @@ -1410,8 +1414,12 @@ Class SetObject::class_ = { mark }; +JSPropertySpec SetObject::properties[] = { + JS_PSG("size", size, 0), + JS_PS_END +}; + JSFunctionSpec SetObject::methods[] = { - JS_FN("size", size, 0, 0), JS_FN("has", has, 1, 0), JS_FN("add", add, 1, 0), JS_FN("delete", delete_, 1, 0), @@ -1424,7 +1432,7 @@ JSObject * SetObject::initClass(JSContext *cx, JSObject *obj) { Rooted global(cx, &obj->asGlobal()); - return InitClass(cx, global, &class_, JSProto_Set, construct, methods); + return InitClass(cx, global, &class_, JSProto_Set, construct, properties, methods); } void diff --git a/js/src/builtin/MapObject.h b/js/src/builtin/MapObject.h index 96d440e4c2d8..32bc9482e827 100644 --- a/js/src/builtin/MapObject.h +++ b/js/src/builtin/MapObject.h @@ -84,6 +84,7 @@ class MapObject : public JSObject { static JSObject *initClass(JSContext *cx, JSObject *obj); static Class class_; private: + static JSPropertySpec properties[]; static JSFunctionSpec methods[]; ValueMap *getData() { return static_cast(getPrivate()); } static ValueMap & extract(CallReceiver call); @@ -114,6 +115,7 @@ class SetObject : public JSObject { static JSObject *initClass(JSContext *cx, JSObject *obj); static Class class_; private: + static JSPropertySpec properties[]; static JSFunctionSpec methods[]; ValueSet *getData() { return static_cast(getPrivate()); } static ValueSet & extract(CallReceiver call); diff --git a/js/src/jit-test/tests/collections/Map-clear-1.js b/js/src/jit-test/tests/collections/Map-clear-1.js index e427a42a3dad..0684c400eea8 100644 --- a/js/src/jit-test/tests/collections/Map-clear-1.js +++ b/js/src/jit-test/tests/collections/Map-clear-1.js @@ -3,6 +3,6 @@ var m = Map(); for (var i = 0; i < 2; i++) { m.clear(); - assertEq(m.size(), 0); + assertEq(m.size, 0); assertEq(m.has(undefined), false); } diff --git a/js/src/jit-test/tests/collections/Map-clear-2.js b/js/src/jit-test/tests/collections/Map-clear-2.js index c9eea1debbcf..27fa4cd5ea89 100644 --- a/js/src/jit-test/tests/collections/Map-clear-2.js +++ b/js/src/jit-test/tests/collections/Map-clear-2.js @@ -1,9 +1,9 @@ // Clearing a Map removes its entries; the Map remains usable afterwards. var m = Map([["a", "b"], ["b", "c"]]); -assertEq(m.size(), 2); +assertEq(m.size, 2); m.clear(); -assertEq(m.size(), 0); +assertEq(m.size, 0); assertEq(m.has("a"), false); assertEq(m.get("a"), undefined); assertEq(m.delete("a"), false); @@ -12,6 +12,6 @@ for (var pair of m) throw "FAIL"; // shouldn't be any pairs m.set("c", "d"); -assertEq(m.size(), 1); +assertEq(m.size, 1); assertEq(m.has("a"), false); assertEq(m.has("b"), false); diff --git a/js/src/jit-test/tests/collections/Map-clear-3.js b/js/src/jit-test/tests/collections/Map-clear-3.js index 28c76d9ff10d..6666479d930e 100644 --- a/js/src/jit-test/tests/collections/Map-clear-3.js +++ b/js/src/jit-test/tests/collections/Map-clear-3.js @@ -3,8 +3,8 @@ var m = Map(); for (var i = 0; i < 100; i++) m.set(i, i); -assertEq(m.size(), i); +assertEq(m.size, i); m.clear(); -assertEq(m.size(), 0); +assertEq(m.size, 0); m.set("a", 1); assertEq(m.get("a"), 1); diff --git a/js/src/jit-test/tests/collections/Map-clear-4.js b/js/src/jit-test/tests/collections/Map-clear-4.js index 1edddf9a9bda..6e9fc12da0d5 100644 --- a/js/src/jit-test/tests/collections/Map-clear-4.js +++ b/js/src/jit-test/tests/collections/Map-clear-4.js @@ -5,6 +5,6 @@ for (var [k, v] of m) if (k !== "c") m.delete(k); m.clear(); -assertEq(m.size(), 0); +assertEq(m.size, 0); assertEq(m.has("c"), false); assertEq(m.has("d"), false); diff --git a/js/src/jit-test/tests/collections/Map-clear-5.js b/js/src/jit-test/tests/collections/Map-clear-5.js index f699d126ab99..264365e48076 100644 --- a/js/src/jit-test/tests/collections/Map-clear-5.js +++ b/js/src/jit-test/tests/collections/Map-clear-5.js @@ -6,9 +6,9 @@ var m1 = Map(data), m2 = Map(data); delete Map.prototype.delete; delete Map.prototype.iterator; m1.clear(); -assertEq(m1.size(), 0); +assertEq(m1.size, 0); Map.prototype.delete = function () { throw "FAIL"; }; Map.prototype.iterator = function () { throw "FAIL"; }; m2.clear(); -assertEq(m2.size(), 0); +assertEq(m2.size, 0); diff --git a/js/src/jit-test/tests/collections/Map-constructor-1.js b/js/src/jit-test/tests/collections/Map-constructor-1.js index 304747ff8aec..c3033f15c356 100644 --- a/js/src/jit-test/tests/collections/Map-constructor-1.js +++ b/js/src/jit-test/tests/collections/Map-constructor-1.js @@ -1,6 +1,6 @@ // The Map constructor creates an empty Map by default. -assertEq(Map().size(), 0); -assertEq((new Map).size(), 0); -assertEq(Map(undefined).size(), 0); -assertEq(new Map(undefined).size(), 0); +assertEq(Map().size, 0); +assertEq((new Map).size, 0); +assertEq(Map(undefined).size, 0); +assertEq(new Map(undefined).size, 0); diff --git a/js/src/jit-test/tests/collections/Map-constructor-3.js b/js/src/jit-test/tests/collections/Map-constructor-3.js index 76881a51dfd4..bb388b3a33a8 100644 --- a/js/src/jit-test/tests/collections/Map-constructor-3.js +++ b/js/src/jit-test/tests/collections/Map-constructor-3.js @@ -2,7 +2,7 @@ var arr = [["a"], ["b"], ["c"]]; var m = Map(arr); -assertEq(m.size(), 3); +assertEq(m.size, 3); for (var [k, _] of arr) { assertEq(m.has(k), true); assertEq(m.get(k), undefined); diff --git a/js/src/jit-test/tests/collections/Map-constructor-duplicates.js b/js/src/jit-test/tests/collections/Map-constructor-duplicates.js index 9fade316ac37..3be687471219 100644 --- a/js/src/jit-test/tests/collections/Map-constructor-duplicates.js +++ b/js/src/jit-test/tests/collections/Map-constructor-duplicates.js @@ -5,4 +5,4 @@ var m = Map(arg); assertEq(m.get("zero"), 0); assertEq(m.get("one"), 1); assertEq(m.get("two"), 2); -assertEq(m.size(), 3); +assertEq(m.size, 3); diff --git a/js/src/jit-test/tests/collections/Map-constructor-generator-1.js b/js/src/jit-test/tests/collections/Map-constructor-generator-1.js index 21fc6c5e70b3..3278f6704dde 100644 --- a/js/src/jit-test/tests/collections/Map-constructor-generator-1.js +++ b/js/src/jit-test/tests/collections/Map-constructor-generator-1.js @@ -12,7 +12,7 @@ function data(n) { var m = Map(data(50)); assertEq(done, true); // the constructor consumes the argument -assertEq(m.size(), 50); +assertEq(m.size, 50); assertEq(m.get(""), 0); assertEq(m.get("....."), 5); assertEq(m.get(Array(49+1).join(".")), 49); diff --git a/js/src/jit-test/tests/collections/Map-constructor-generator-2.js b/js/src/jit-test/tests/collections/Map-constructor-generator-2.js index afbe2e1d38c7..d2bf399ba7b9 100644 --- a/js/src/jit-test/tests/collections/Map-constructor-generator-2.js +++ b/js/src/jit-test/tests/collections/Map-constructor-generator-2.js @@ -2,7 +2,7 @@ var arr = [1, 2, "green", "red"]; var m = Map([v, v] for (v of arr)); -assertEq(m.size(), 4); +assertEq(m.size, 4); for (var i = 0; i < 4; i++) assertEq(m.get(arr[i]), arr[i]); diff --git a/js/src/jit-test/tests/collections/Map-constructor-generator-3.js b/js/src/jit-test/tests/collections/Map-constructor-generator-3.js index 44e9479f83bb..cddcbb5d43cc 100644 --- a/js/src/jit-test/tests/collections/Map-constructor-generator-3.js +++ b/js/src/jit-test/tests/collections/Map-constructor-generator-3.js @@ -1,8 +1,8 @@ // The argument to Map may be a generator-iterator that produces no values. -assertEq(Map(x for (x of [])).size(), 0); +assertEq(Map(x for (x of [])).size, 0); function none() { if (0) yield 0; } -assertEq(Map(none()).size(), 0); +assertEq(Map(none()).size, 0); diff --git a/js/src/jit-test/tests/collections/Map-delete-size.js b/js/src/jit-test/tests/collections/Map-delete-size.js index 5ece89c63a61..44189f89ea1c 100644 --- a/js/src/jit-test/tests/collections/Map-delete-size.js +++ b/js/src/jit-test/tests/collections/Map-delete-size.js @@ -2,13 +2,13 @@ var m = Map(); m.delete(3); -assertEq(m.size(), 0); +assertEq(m.size, 0); m.set({}, 'ok'); m.set(Math, 'ok'); -assertEq(m.size(), 2); +assertEq(m.size, 2); m.delete({}); -assertEq(m.size(), 2); +assertEq(m.size, 2); m.delete(Math); -assertEq(m.size(), 1); +assertEq(m.size, 1); m.delete(Math); -assertEq(m.size(), 1); +assertEq(m.size, 1); diff --git a/js/src/jit-test/tests/collections/Map-iterator-add-1.js b/js/src/jit-test/tests/collections/Map-iterator-add-1.js index 13c2c82ce969..01d20822c9cb 100644 --- a/js/src/jit-test/tests/collections/Map-iterator-add-1.js +++ b/js/src/jit-test/tests/collections/Map-iterator-add-1.js @@ -12,4 +12,4 @@ for (let [k, v] of map) { force(v); } assertEq(log, '5;4;3;2;1;0;'); -assertEq(map.size(), 6); +assertEq(map.size, 6); diff --git a/js/src/jit-test/tests/collections/Map-iterator-order.js b/js/src/jit-test/tests/collections/Map-iterator-order.js index 388361e4192f..72161886c591 100644 --- a/js/src/jit-test/tests/collections/Map-iterator-order.js +++ b/js/src/jit-test/tests/collections/Map-iterator-order.js @@ -5,7 +5,7 @@ load(libdir + "eqArrayHelper.js"); var map = Map(); for (var i = 7; i !== 1; i = i * 7 % 1117) map.set("" + i, i); -assertEq(map.size(), 557); +assertEq(map.size, 557); i = 7; for (var pair of map) { diff --git a/js/src/jit-test/tests/collections/Map-iterator-pairs-3.js b/js/src/jit-test/tests/collections/Map-iterator-pairs-3.js index 54a8e38a851b..944eded65596 100644 --- a/js/src/jit-test/tests/collections/Map-iterator-pairs-3.js +++ b/js/src/jit-test/tests/collections/Map-iterator-pairs-3.js @@ -9,4 +9,4 @@ assertEq(pair[0], 'b'); assertEq(pair[1], 2); assertEq(map.get('a'), 1); assertEq(map.has('b'), false); -assertEq(map.size(), 1); +assertEq(map.size, 1); diff --git a/js/src/jit-test/tests/collections/Map-iterator-remove-5.js b/js/src/jit-test/tests/collections/Map-iterator-remove-5.js index 7e255fde25cc..c7e7d9ff096d 100644 --- a/js/src/jit-test/tests/collections/Map-iterator-remove-5.js +++ b/js/src/jit-test/tests/collections/Map-iterator-remove-5.js @@ -18,5 +18,5 @@ for (var [k, v] of map) { } } assertEq(log, 'ABCDEFGHIJKLMNOPQRST'); -assertEq(map.size(), 1); // Only the last entry remains. +assertEq(map.size, 1); // Only the last entry remains. assertEq(map.get('T'), 19); diff --git a/js/src/jit-test/tests/collections/Map-iterator-remove-6.js b/js/src/jit-test/tests/collections/Map-iterator-remove-6.js index 3be1b4569f76..e25199482c7c 100644 --- a/js/src/jit-test/tests/collections/Map-iterator-remove-6.js +++ b/js/src/jit-test/tests/collections/Map-iterator-remove-6.js @@ -11,7 +11,7 @@ var iter = map.iterator(); assertEq(iter.next()[0], 0); for (var i = 0; i < 30; i++) map.delete(i); -assertEq(map.size(), 2); +assertEq(map.size, 2); for (var i = 32; i < 100; i++) map.set(i, i); // eventually triggers compaction diff --git a/js/src/jit-test/tests/collections/Map-set-size.js b/js/src/jit-test/tests/collections/Map-set-size.js index f0a4cdfde148..10f967087cd2 100644 --- a/js/src/jit-test/tests/collections/Map-set-size.js +++ b/js/src/jit-test/tests/collections/Map-set-size.js @@ -2,13 +2,13 @@ var m = Map(); m.set('a', 0); -assertEq(m.size(), 1); +assertEq(m.size, 1); m.set('a', 0); -assertEq(m.size(), 1); +assertEq(m.size, 1); m.set('a', undefined); -assertEq(m.size(), 1); +assertEq(m.size, 1); m.set('b', 2); -assertEq(m.size(), 2); +assertEq(m.size, 2); m.set('a', 1); -assertEq(m.size(), 2); +assertEq(m.size, 2); diff --git a/js/src/jit-test/tests/collections/Map-size.js b/js/src/jit-test/tests/collections/Map-size.js index 325abdc1a9ab..ef5d786479a3 100644 --- a/js/src/jit-test/tests/collections/Map-size.js +++ b/js/src/jit-test/tests/collections/Map-size.js @@ -2,5 +2,5 @@ var m1 = Map(), m2 = Map(); m1.set("x", 3); -assertEq(m1.size(), 1); -assertEq(m2.size(), 0); +assertEq(m1.size, 1); +assertEq(m2.size, 0); diff --git a/js/src/jit-test/tests/collections/Map-surfaces-1.js b/js/src/jit-test/tests/collections/Map-surfaces-1.js index abfc950955ca..2b620aeeb33c 100644 --- a/js/src/jit-test/tests/collections/Map-surfaces-1.js +++ b/js/src/jit-test/tests/collections/Map-surfaces-1.js @@ -27,9 +27,15 @@ function checkMethod(name, arity) { assertEq(desc.value.length, arity); } -checkMethod("size", 0); checkMethod("get", 1); checkMethod("has", 1); checkMethod("set", 2); checkMethod("delete", 1); + +var desc = Object.getOwnPropertyDescriptor(Map.prototype, "size"); +assertEq(desc.enumerable, false); +assertEq(desc.configurable, true); +assertEq(typeof desc.get, 'function'); +assertEq(desc.get.length, 0); +assertEq(desc.set, undefined); checkMethod("clear", 0); diff --git a/js/src/jit-test/tests/collections/Map-surfaces-2.js b/js/src/jit-test/tests/collections/Map-surfaces-2.js index 2478e3671091..78d27ac761df 100644 --- a/js/src/jit-test/tests/collections/Map-surfaces-2.js +++ b/js/src/jit-test/tests/collections/Map-surfaces-2.js @@ -8,13 +8,15 @@ function testcase(obj, fn) { assertThrowsInstanceOf(function () { fn.apply(obj, args); }, TypeError); } +var Map_size_getter = Object.getOwnPropertyDescriptor(Map.prototype, "size").get; + function test(obj) { - testcase(obj, Map.prototype.size); testcase(obj, Map.prototype.get, "x"); testcase(obj, Map.prototype.has, "x"); testcase(obj, Map.prototype.set, "x", 1); testcase(obj, Map.prototype.delete, "x"); testcase(obj, Map.prototype.clear); + testcase(obj, Map_size_getter); } test(Map.prototype); diff --git a/js/src/jit-test/tests/collections/Set-add-size.js b/js/src/jit-test/tests/collections/Set-add-size.js index 381bd111d13d..ceb4bdbff926 100644 --- a/js/src/jit-test/tests/collections/Set-add-size.js +++ b/js/src/jit-test/tests/collections/Set-add-size.js @@ -1,11 +1,11 @@ -// set.add(v) increments set.size() iff the set did not already contain v. +// set.add(v) increments set.size iff the set did not already contain v. var s = Set(); for (var i = 0; i < 10; i++) { - assertEq(s.size(), i); + assertEq(s.size, i); s.add(i); } for (var i = 0; i < 10; i++) { - assertEq(s.size(), 10); + assertEq(s.size, 10); s.add(i); } diff --git a/js/src/jit-test/tests/collections/Set-clear-1.js b/js/src/jit-test/tests/collections/Set-clear-1.js index 357f5706332b..c866769bcc6d 100644 --- a/js/src/jit-test/tests/collections/Set-clear-1.js +++ b/js/src/jit-test/tests/collections/Set-clear-1.js @@ -3,6 +3,6 @@ var s = Set(); for (var i = 0; i < 2; i++) { s.clear(); - assertEq(s.size(), 0); + assertEq(s.size, 0); assertEq(s.has(undefined), false); } diff --git a/js/src/jit-test/tests/collections/Set-clear-2.js b/js/src/jit-test/tests/collections/Set-clear-2.js index 2e5b6add0953..b711daa978e3 100644 --- a/js/src/jit-test/tests/collections/Set-clear-2.js +++ b/js/src/jit-test/tests/collections/Set-clear-2.js @@ -1,9 +1,9 @@ // Clearing a Set removes its elements; the Set remains usable afterwards. var s = Set(["x", "y", "z", "z", "y"]); -assertEq(s.size(), 3); +assertEq(s.size, 3); s.clear(); -assertEq(s.size(), 0); +assertEq(s.size, 0); assertEq(s.has("x"), false); assertEq(s.delete("x"), false); assertEq(s.has("z"), false); @@ -11,6 +11,6 @@ for (var v of s) throw "FAIL"; // shouldn't be any elements s.add("y"); -assertEq(s.size(), 1); +assertEq(s.size, 1); assertEq(s.has("x"), false); assertEq(s.has("z"), false); diff --git a/js/src/jit-test/tests/collections/Set-clear-3.js b/js/src/jit-test/tests/collections/Set-clear-3.js index 9b28e2ffe783..6c08b99cdc70 100644 --- a/js/src/jit-test/tests/collections/Set-clear-3.js +++ b/js/src/jit-test/tests/collections/Set-clear-3.js @@ -3,8 +3,8 @@ var s = Set(); for (var i = 0; i < 100; i++) s.add(i); -assertEq(s.size(), i); +assertEq(s.size, i); s.clear(); -assertEq(s.size(), 0); +assertEq(s.size, 0); s.add(12); assertEq(s.has(12), true); diff --git a/js/src/jit-test/tests/collections/Set-clear-4.js b/js/src/jit-test/tests/collections/Set-clear-4.js index 01bfb5805132..8f6eb4aeda9a 100644 --- a/js/src/jit-test/tests/collections/Set-clear-4.js +++ b/js/src/jit-test/tests/collections/Set-clear-4.js @@ -5,6 +5,6 @@ for (var v of s) if (v !== "c") s.delete(v); s.clear(); -assertEq(s.size(), 0); +assertEq(s.size, 0); assertEq(s.has("c"), false); assertEq(s.has("d"), false); diff --git a/js/src/jit-test/tests/collections/Set-clear-5.js b/js/src/jit-test/tests/collections/Set-clear-5.js index fef8a2897ed4..813b0d0fd707 100644 --- a/js/src/jit-test/tests/collections/Set-clear-5.js +++ b/js/src/jit-test/tests/collections/Set-clear-5.js @@ -6,9 +6,9 @@ var s1 = Set(data), s2 = Set(data); delete Set.prototype.delete; delete Set.prototype.iterator; s1.clear(); -assertEq(s1.size(), 0); +assertEq(s1.size, 0); Set.prototype.delete = function () { throw "FAIL"; }; Set.prototype.iterator = function () { throw "FAIL"; }; s2.clear(); -assertEq(s2.size(), 0); +assertEq(s2.size, 0); diff --git a/js/src/jit-test/tests/collections/Set-constructor-1.js b/js/src/jit-test/tests/collections/Set-constructor-1.js index f7c75067ee73..2466468d6dad 100644 --- a/js/src/jit-test/tests/collections/Set-constructor-1.js +++ b/js/src/jit-test/tests/collections/Set-constructor-1.js @@ -1,6 +1,6 @@ // The Set constructor creates an empty Set by default. -assertEq(Set().size(), 0); -assertEq((new Set).size(), 0); -assertEq(Set(undefined).size(), 0); -assertEq(new Set(undefined).size(), 0); +assertEq(Set().size, 0); +assertEq((new Set).size, 0); +assertEq(Set(undefined).size, 0); +assertEq(new Set(undefined).size, 0); diff --git a/js/src/jit-test/tests/collections/Set-constructor-2.js b/js/src/jit-test/tests/collections/Set-constructor-2.js index 92dccc84919e..0ec554fc9804 100644 --- a/js/src/jit-test/tests/collections/Set-constructor-2.js +++ b/js/src/jit-test/tests/collections/Set-constructor-2.js @@ -1,17 +1,17 @@ // The Set constructor can take an argument that is an array. var s = Set([]); -assertEq(s.size(), 0); +assertEq(s.size, 0); assertEq(s.has(undefined), false); s = Set(["one", "two", "three"]); -assertEq(s.size(), 3); +assertEq(s.size, 3); assertEq(s.has("one"), true); assertEq(s.has("eleventeen"), false); var a = [{}, {}, {}]; s = Set(a); -assertEq(s.size(), 3); +assertEq(s.size, 3); for (let obj of a) assertEq(s.has(obj), true); assertEq(s.has({}), false); diff --git a/js/src/jit-test/tests/collections/Set-constructor-3.js b/js/src/jit-test/tests/collections/Set-constructor-3.js index 7238c0610c39..9851cec39664 100644 --- a/js/src/jit-test/tests/collections/Set-constructor-3.js +++ b/js/src/jit-test/tests/collections/Set-constructor-3.js @@ -1,11 +1,11 @@ // The argument to Set may contain a value multiple times. Duplicates are discarded. -assertEq(Set(["testing", "testing", 123]).size(), 2); +assertEq(Set(["testing", "testing", 123]).size, 2); var values = [undefined, null, false, NaN, 0, -0, 6.022e23, -Infinity, "", "xyzzy", {}, Math.sin]; for (let v of values) { var a = [v, {}, {}, {}, v, {}, v, v]; var s = Set(a); - assertEq(s.size(), 5); + assertEq(s.size, 5); assertEq(s.has(v), true); } diff --git a/js/src/jit-test/tests/collections/Set-constructor-generator-1.js b/js/src/jit-test/tests/collections/Set-constructor-generator-1.js index 26db09ba41e3..3b2263dacbe0 100644 --- a/js/src/jit-test/tests/collections/Set-constructor-generator-1.js +++ b/js/src/jit-test/tests/collections/Set-constructor-generator-1.js @@ -6,7 +6,7 @@ function hexData(n) { } var s = Set(hexData(256)); -assertEq(s.size(), 256); +assertEq(s.size, 256); assertEq(s.has("0"), true); assertEq(s.has(0), false); assertEq(s.has("ff"), true); diff --git a/js/src/jit-test/tests/collections/Set-constructor-generator-2.js b/js/src/jit-test/tests/collections/Set-constructor-generator-2.js index 4e65253fe066..6e12cf64962b 100644 --- a/js/src/jit-test/tests/collections/Set-constructor-generator-2.js +++ b/js/src/jit-test/tests/collections/Set-constructor-generator-2.js @@ -1,7 +1,7 @@ // The argument to Set can be a generator-expression. var s = Set(k * k for (k of [1, 2, 3, 4])); -assertEq(s.size(), 4); +assertEq(s.size, 4); assertEq(s.has(1), true); assertEq(s.has(4), true); assertEq(s.has(9), true); diff --git a/js/src/jit-test/tests/collections/Set-delete-size.js b/js/src/jit-test/tests/collections/Set-delete-size.js index e02234a99bd2..fbd2a1cd608b 100644 --- a/js/src/jit-test/tests/collections/Set-delete-size.js +++ b/js/src/jit-test/tests/collections/Set-delete-size.js @@ -1,15 +1,15 @@ -// set.delete(v) decrements set.size() iff the set contained v. +// set.delete(v) decrements set.size iff the set contained v. var s = Set(); for (var i = 0; i < 10; i++) s.add(i); for (var i = 10; i > 0; i--) { - assertEq(s.size(), i); + assertEq(s.size, i); assertEq(s.delete(i), false); - assertEq(s.size(), i); + assertEq(s.size, i); assertEq(s.delete(i - 1), true); - assertEq(s.size(), i - 1); + assertEq(s.size, i - 1); assertEq(s.delete(i - 1), false); - assertEq(s.size(), i - 1); + assertEq(s.size, i - 1); } diff --git a/js/src/jit-test/tests/collections/Set-iterator-3.js b/js/src/jit-test/tests/collections/Set-iterator-3.js index 96b586cc2b2d..760eda187023 100644 --- a/js/src/jit-test/tests/collections/Set-iterator-3.js +++ b/js/src/jit-test/tests/collections/Set-iterator-3.js @@ -2,7 +2,7 @@ var arr = [{}, {}, {}, [], /xyz/, new Date]; var set = Set(arr); -assertEq(set.size(), arr.length); +assertEq(set.size, arr.length); var i = 0; for (var x of set) diff --git a/js/src/jit-test/tests/collections/Set-iterator-add-1.js b/js/src/jit-test/tests/collections/Set-iterator-add-1.js index 2608984b1738..2d1c92011677 100644 --- a/js/src/jit-test/tests/collections/Set-iterator-add-1.js +++ b/js/src/jit-test/tests/collections/Set-iterator-add-1.js @@ -8,4 +8,4 @@ for (let x of set) { set.add(x - 1); } assertEq(log, '5;4;3;2;1;0;'); -assertEq(set.size(), 6); +assertEq(set.size, 6); diff --git a/js/src/jit-test/tests/collections/Set-iterator-order.js b/js/src/jit-test/tests/collections/Set-iterator-order.js index fc5f33bad4a7..bc89debc66ab 100644 --- a/js/src/jit-test/tests/collections/Set-iterator-order.js +++ b/js/src/jit-test/tests/collections/Set-iterator-order.js @@ -4,7 +4,7 @@ var set = Set(); var i; for (i = 7; i !== 1; i = i * 7 % 1117) set.add(i); -assertEq(set.size(), 557); +assertEq(set.size, 557); i = 7; for (var v of set) { diff --git a/js/src/jit-test/tests/collections/Set-iterator-remove-5.js b/js/src/jit-test/tests/collections/Set-iterator-remove-5.js index b72c09d1a21d..a74c1145d2b8 100644 --- a/js/src/jit-test/tests/collections/Set-iterator-remove-5.js +++ b/js/src/jit-test/tests/collections/Set-iterator-remove-5.js @@ -18,5 +18,5 @@ for (var x of set) { } } assertEq(log, str); -assertEq(set.size(), 1); // Elements 0 to 24 are removed, leaving only 25 (Z). +assertEq(set.size, 1); // Elements 0 to 24 are removed, leaving only 25 (Z). assertEq(set.has('Z'), true); diff --git a/js/src/jit-test/tests/collections/Set-iterator-remove-6.js b/js/src/jit-test/tests/collections/Set-iterator-remove-6.js index 1e03c0fccdc7..d21b19500783 100644 --- a/js/src/jit-test/tests/collections/Set-iterator-remove-6.js +++ b/js/src/jit-test/tests/collections/Set-iterator-remove-6.js @@ -11,7 +11,7 @@ var iter = set.iterator(); assertEq(iter.next(), 0); for (var i = 0; i < 30; i++) set.delete(i); -assertEq(set.size(), 2); +assertEq(set.size, 2); for (var i = 32; i < 100; i++) set.add(i); // eventually triggers compaction diff --git a/js/src/jit-test/tests/collections/Set-size.js b/js/src/jit-test/tests/collections/Set-size.js index b82c24e96a71..fc1c266dd50f 100644 --- a/js/src/jit-test/tests/collections/Set-size.js +++ b/js/src/jit-test/tests/collections/Set-size.js @@ -3,5 +3,5 @@ var s1 = Set(), s2 = Set(); for (var i = 0; i < 30; i++) s1.add(i); -assertEq(s1.size(), 30); -assertEq(s2.size(), 0); +assertEq(s1.size, 30); +assertEq(s2.size, 0); diff --git a/js/src/jit-test/tests/collections/Set-surfaces-1.js b/js/src/jit-test/tests/collections/Set-surfaces-1.js index 5b31e1a21463..fe44883d026b 100644 --- a/js/src/jit-test/tests/collections/Set-surfaces-1.js +++ b/js/src/jit-test/tests/collections/Set-surfaces-1.js @@ -30,4 +30,11 @@ function checkMethod(name, arity) { checkMethod("has", 1); checkMethod("add", 1); checkMethod("delete", 1); + +var desc = Object.getOwnPropertyDescriptor(Set.prototype, "size"); +assertEq(desc.enumerable, false); +assertEq(desc.configurable, true); +assertEq(typeof desc.get, 'function'); +assertEq(desc.get.length, 0); +assertEq(desc.set, undefined); checkMethod("clear", 0); diff --git a/js/src/jit-test/tests/collections/Set-surfaces-2.js b/js/src/jit-test/tests/collections/Set-surfaces-2.js index 05fc4920e993..20ab6a32e6fa 100644 --- a/js/src/jit-test/tests/collections/Set-surfaces-2.js +++ b/js/src/jit-test/tests/collections/Set-surfaces-2.js @@ -8,11 +8,14 @@ function testcase(obj, fn) { assertThrowsInstanceOf(function () { fn.apply(obj, args); }, TypeError); } +var Set_size_getter = Object.getOwnPropertyDescriptor(Set.prototype, "size").get; + function test(obj) { testcase(obj, Set.prototype.has, 12); testcase(obj, Set.prototype.add, 12); testcase(obj, Set.prototype.delete, 12); testcase(obj, Set.prototype.clear); + testcase(obj, Set_size_getter); } test(Set.prototype); diff --git a/js/src/jit-test/tests/collections/bug-743101.js b/js/src/jit-test/tests/collections/bug-743101.js index d30f3fc4e03c..30c563f5ad5e 100644 --- a/js/src/jit-test/tests/collections/bug-743101.js +++ b/js/src/jit-test/tests/collections/bug-743101.js @@ -1,5 +1,7 @@ load(libdir + "asserts.js"); var g = newGlobal('new-compartment'); -assertThrowsInstanceOf(function () { Map.prototype.size.apply(g, []); }, g.TypeError); -assertThrowsInstanceOf(function () { Set.prototype.size.apply(g, []); }, g.TypeError); +for (var cls of [Map, Set]) { + var getter = Object.getOwnPropertyDescriptor(cls.prototype, "size").get; + assertThrowsInstanceOf(function () { getter.apply(g, []); }, g.TypeError); +} diff --git a/services/common/tests/unit/test_aitc_server.js b/services/common/tests/unit/test_aitc_server.js index f8cdd4d16f3a..032c3cd89b25 100644 --- a/services/common/tests/unit/test_aitc_server.js +++ b/services/common/tests/unit/test_aitc_server.js @@ -158,7 +158,7 @@ add_test(function test_invalid_request_method() { allowed.add(method); } - do_check_eq(allowed.size(), 3); + do_check_eq(allowed.size, 3); for (let method of ["GET", "PUT", "DELETE"]) { do_check_true(allowed.has(method)); } diff --git a/toolkit/components/contentprefs/nsContentPrefService.js b/toolkit/components/contentprefs/nsContentPrefService.js index 4dc9d4f09c3e..e50765ed3736 100644 --- a/toolkit/components/contentprefs/nsContentPrefService.js +++ b/toolkit/components/contentprefs/nsContentPrefService.js @@ -131,7 +131,7 @@ var inMemoryPrefsProto = { if (this._prefCache[aGroup].has(aName)) { this._prefCache[aGroup].delete(aName); - if (this._prefCache[aGroup].size() == 0) { + if (this._prefCache[aGroup].size == 0) { // remove empty group delete this._prefCache[aGroup]; } diff --git a/toolkit/mozapps/plugins/content/pluginInstallerWizard.js b/toolkit/mozapps/plugins/content/pluginInstallerWizard.js index d16479fa73cd..9271f5b988b4 100644 --- a/toolkit/mozapps/plugins/content/pluginInstallerWizard.js +++ b/toolkit/mozapps/plugins/content/pluginInstallerWizard.js @@ -78,9 +78,9 @@ nsPluginInstallerWizard.prototype.pluginInfoReceived = function (aPluginRequestI progressMeter.setAttribute("mode", "determined"); progressMeter.setAttribute("value", - ((this.WSPluginCounter / this.mPluginRequests.size()) * 100) + "%"); + ((this.WSPluginCounter / this.mPluginRequests.size) * 100) + "%"); - if (this.WSPluginCounter == this.mPluginRequests.size()) { + if (this.WSPluginCounter == this.mPluginRequests.size) { // check if no plugins were found if (this.mPluginInfoArrayLength == 0) { this.advancePage("lastpage");