From f294aa213c8313c8ab6d42da022ef26f6a39705d Mon Sep 17 00:00:00 2001 From: Adam Vandolder Date: Wed, 10 Jun 2020 13:40:13 +0000 Subject: [PATCH] Bug 1644581 - Remove Iterator.prototype[@@toStringTag]. r=jorendorff Differential Revision: https://phabricator.services.mozilla.com/D78983 --- js/src/tests/jstests.list | 1 - js/src/tests/non262/Iterator/proto.js | 3 +++ js/src/tests/non262/Iterator/toStringTag.js | 12 ------------ js/src/vm/Iteration.cpp | 7 +------ 4 files changed, 4 insertions(+), 19 deletions(-) delete mode 100644 js/src/tests/non262/Iterator/toStringTag.js diff --git a/js/src/tests/jstests.list b/js/src/tests/jstests.list index b1031cc92d46..8ffdb6804f25 100644 --- a/js/src/tests/jstests.list +++ b/js/src/tests/jstests.list @@ -746,7 +746,6 @@ shell-option(--enable-iterator-helpers) script non262/Iterator/constructor.js shell-option(--enable-iterator-helpers) script non262/Iterator/constructor-subclassable.js shell-option(--enable-iterator-helpers) script non262/Iterator/constructor-throw-when-called-directly.js shell-option(--enable-iterator-helpers) script non262/Iterator/constructor-throw-without-new.js -shell-option(--enable-iterator-helpers) script non262/Iterator/toStringTag.js shell-option(--enable-iterator-helpers) script non262/Iterator/from/call-from-with-different-this.js shell-option(--enable-iterator-helpers) script non262/Iterator/from/Iterator.from-descriptor.js shell-option(--enable-iterator-helpers) script non262/Iterator/from/Iterator.from-length.js diff --git a/js/src/tests/non262/Iterator/proto.js b/js/src/tests/non262/Iterator/proto.js index 5b32f5d34b7f..2ab92641e7d3 100644 --- a/js/src/tests/non262/Iterator/proto.js +++ b/js/src/tests/non262/Iterator/proto.js @@ -10,5 +10,8 @@ assertEq(propDesc.writable, false); assertEq(propDesc.enumerable, false); assertEq(propDesc.configurable, false); +// Make sure @@toStringTag hasn't been set. +assertEq(Symbol.toStringTag in propDesc.value, false); + if (typeof reportCompare === 'function') reportCompare(0, 0); diff --git a/js/src/tests/non262/Iterator/toStringTag.js b/js/src/tests/non262/Iterator/toStringTag.js deleted file mode 100644 index 91557dcb084e..000000000000 --- a/js/src/tests/non262/Iterator/toStringTag.js +++ /dev/null @@ -1,12 +0,0 @@ -// |reftest| skip-if(!this.hasOwnProperty('Iterator')) -- Iterator is not enabled unconditionally -const propDesc = Reflect.getOwnPropertyDescriptor(Iterator.prototype, Symbol.toStringTag); -assertEq(propDesc.value, 'Iterator'); -assertEq(propDesc.writable, false); -assertEq(propDesc.enumerable, false); -assertEq(propDesc.configurable, true); - -class TestIterator extends Iterator {} -assertEq(new TestIterator().toString(), '[object Iterator]'); - -if (typeof reportCompare == 'function') - reportCompare(0, 0); diff --git a/js/src/vm/Iteration.cpp b/js/src/vm/Iteration.cpp index 3bd4bbb66b7b..124d1ae886d4 100644 --- a/js/src/vm/Iteration.cpp +++ b/js/src/vm/Iteration.cpp @@ -1523,11 +1523,6 @@ static const JSFunctionSpec iterator_methods_with_helpers[] = { JS_SELF_HOSTED_SYM_FN(iterator, "IteratorIdentity", 0, 0), JS_FS_END}; -static const JSPropertySpec iterator_properties[] = { - JS_STRING_SYM_PS(toStringTag, js_Iterator_str, JSPROP_READONLY), - JS_PS_END, -}; - /* static */ bool GlobalObject::initIteratorProto(JSContext* cx, Handle global) { @@ -1666,7 +1661,7 @@ static const ClassSpec IteratorObjectClassSpec = { iterator_static_methods, nullptr, iterator_methods_with_helpers, - iterator_properties, + nullptr, nullptr, };