Revert "ES6: Make Map/Set constructors support iterable values"
Reason for revert: TestSetConstructorIterableValue(WeakSet) fails on x64.debug TBR=adamk@chromium.org,dslomov@chromium.org LOG=Y BUG= Review URL: https://codereview.chromium.org/461193002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
f95b81a6ef
commit
0a35d53f7d
@ -23,7 +23,7 @@ function SetConstructor(iterable) {
|
||||
var iter, adder;
|
||||
|
||||
if (!IS_NULL_OR_UNDEFINED(iterable)) {
|
||||
iter = GetIterator(ToObject(iterable));
|
||||
iter = GetIterator(iterable);
|
||||
adder = this.add;
|
||||
if (!IS_SPEC_FUNCTION(adder)) {
|
||||
throw MakeTypeError('property_not_function', ['add', this]);
|
||||
@ -147,7 +147,7 @@ function MapConstructor(iterable) {
|
||||
var iter, adder;
|
||||
|
||||
if (!IS_NULL_OR_UNDEFINED(iterable)) {
|
||||
iter = GetIterator(ToObject(iterable));
|
||||
iter = GetIterator(iterable);
|
||||
adder = this.set;
|
||||
if (!IS_SPEC_FUNCTION(adder)) {
|
||||
throw MakeTypeError('property_not_function', ['set', this]);
|
||||
|
@ -23,7 +23,7 @@ function WeakMapConstructor(iterable) {
|
||||
var iter, adder;
|
||||
|
||||
if (!IS_NULL_OR_UNDEFINED(iterable)) {
|
||||
iter = GetIterator(ToObject(iterable));
|
||||
iter = GetIterator(iterable);
|
||||
adder = this.set;
|
||||
if (!IS_SPEC_FUNCTION(adder)) {
|
||||
throw MakeTypeError('property_not_function', ['set', this]);
|
||||
@ -139,7 +139,7 @@ function WeakSetConstructor(iterable) {
|
||||
var iter, adder;
|
||||
|
||||
if (!IS_NULL_OR_UNDEFINED(iterable)) {
|
||||
iter = GetIterator(ToObject(iterable));
|
||||
iter = GetIterator(iterable);
|
||||
adder = this.add;
|
||||
if (!IS_SPEC_FUNCTION(adder)) {
|
||||
throw MakeTypeError('property_not_function', ['add', this]);
|
||||
|
@ -1015,9 +1015,6 @@ function TestSetConstructor(ctor) {
|
||||
assertThrows(function() {
|
||||
new ctor({});
|
||||
}, TypeError);
|
||||
assertThrows(function() {
|
||||
new ctor(true);
|
||||
}, TypeError);
|
||||
|
||||
// @@iterator not callable
|
||||
assertThrows(function() {
|
||||
@ -1151,39 +1148,6 @@ TestSetConstructorNextNotAnObject(WeakSet);
|
||||
})();
|
||||
|
||||
|
||||
function TestSetConstructorIterableValue(ctor) {
|
||||
'use strict';
|
||||
// Strict mode is required to prevent implicit wrapping in the getter.
|
||||
Object.defineProperty(Number.prototype, Symbol.iterator, {
|
||||
get: function() {
|
||||
assertEquals('object', typeof this);
|
||||
return function() {
|
||||
return oneAndTwo.keys();
|
||||
};
|
||||
},
|
||||
configurable: true
|
||||
});
|
||||
|
||||
var set = new ctor(42);
|
||||
assertSize(2, set);
|
||||
assertTrue(set.has(k1));
|
||||
assertTrue(set.has(k2));
|
||||
|
||||
delete Number.prototype[Symbol.iterator];
|
||||
}
|
||||
TestSetConstructorIterableValue(Set);
|
||||
TestSetConstructorIterableValue(WeakSet);
|
||||
|
||||
|
||||
(function TestSetConstructorStringValue() {
|
||||
var s = new Set('abc');
|
||||
assertSize(3, s);
|
||||
assertTrue(s.has('a'));
|
||||
assertTrue(s.has('b'));
|
||||
assertTrue(s.has('c'));
|
||||
})();
|
||||
|
||||
|
||||
function TestMapConstructor(ctor) {
|
||||
var m = new ctor(null);
|
||||
assertSize(0, m);
|
||||
@ -1195,9 +1159,6 @@ function TestMapConstructor(ctor) {
|
||||
assertThrows(function() {
|
||||
new ctor({});
|
||||
}, TypeError);
|
||||
assertThrows(function() {
|
||||
new ctor(true);
|
||||
}, TypeError);
|
||||
|
||||
// @@iterator not callable
|
||||
assertThrows(function() {
|
||||
@ -1339,27 +1300,3 @@ TestMapConstructorIteratorNotObjectValues(WeakMap);
|
||||
new WeakMap([[1, 2]])
|
||||
}, TypeError);
|
||||
})();
|
||||
|
||||
|
||||
function TestMapConstructorIterableValue(ctor) {
|
||||
'use strict';
|
||||
// Strict mode is required to prevent implicit wrapping in the getter.
|
||||
Object.defineProperty(Number.prototype, Symbol.iterator, {
|
||||
get: function() {
|
||||
assertEquals('object', typeof this);
|
||||
return function() {
|
||||
return oneAndTwo.entries();
|
||||
};
|
||||
},
|
||||
configurable: true
|
||||
});
|
||||
|
||||
var map = new ctor(42);
|
||||
assertSize(2, map);
|
||||
assertEquals(1, map.get(k1));
|
||||
assertEquals(2, map.get(k2));
|
||||
|
||||
delete Number.prototype[Symbol.iterator];
|
||||
}
|
||||
TestMapConstructorIterableValue(Map);
|
||||
TestMapConstructorIterableValue(WeakMap);
|
||||
|
Loading…
Reference in New Issue
Block a user