| Index: test/mjsunit/harmony/proxies-for.js
|
| diff --git a/test/mjsunit/harmony/proxies-for.js b/test/mjsunit/harmony/proxies-for.js
|
| index 0b7bcc2cd099def71a503069a3a4b4a4b58b32f3..f0b36abbee71e0634154bc50fc56c7640dc2e874 100644
|
| --- a/test/mjsunit/harmony/proxies-for.js
|
| +++ b/test/mjsunit/harmony/proxies-for.js
|
| @@ -40,6 +40,8 @@ function TestWithProxies(test, x, y, z) {
|
|
|
| // Iterate over a proxy.
|
|
|
| +Array.prototype.values = function() { return this[Symbol.iterator]() }
|
| +
|
| function TestForIn(properties, handler) {
|
| TestWithProxies(TestForIn2, properties, handler)
|
| }
|
| @@ -52,30 +54,17 @@ function TestForIn2(create, properties, handler) {
|
| }
|
|
|
| TestForIn(["0", "a"], {
|
| - enumerate: function() { return [0, "a"] }
|
| + enumerate: function() { return ["0", "a"].values() }
|
| })
|
|
|
| TestForIn(["null", "a"], {
|
| enumerate: function() { return this.enumerate2() },
|
| - enumerate2: function() { return [null, "a"] }
|
| -})
|
| -
|
| -TestForIn(["b", "d"], {
|
| - getPropertyNames: function() { return ["a", "b", "c", "d", "e"] },
|
| - getPropertyDescriptor: function(k) {
|
| - switch (k) {
|
| - case "a": return {enumerable: false, value: "3", configurable: true};
|
| - case "b": return {enumerable: true, get get() {}, configurable: true};
|
| - case "c": return {value: 4, configurable: true};
|
| - case "d": return {get enumerable() { return true }, configurable: true};
|
| - default: return undefined;
|
| - }
|
| - }
|
| + enumerate2: function() { return ["null", "a"].values() }
|
| })
|
|
|
| TestForIn(["b", "a", "0", "c"], new Proxy({}, {
|
| get: function(pr, pk) {
|
| - return function() { return ["b", "a", 0, "c"] }
|
| + return function() { return ["b", "a", "0", "c"].values() }
|
| }
|
| }))
|
|
|
| @@ -103,31 +92,14 @@ function TestForInDerived2(create, properties, handler) {
|
| }
|
|
|
| TestForInDerived(["0", "a"], {
|
| - enumerate: function() { return [0, "a"] },
|
| - getPropertyDescriptor: function(k) {
|
| - return k == "0" || k == "a" ? {configurable: true} : undefined
|
| - }
|
| + enumerate: function() { return ["0", "a"].values() },
|
| + has: function(t, k) { return k == "0" || k == "a" }
|
| })
|
|
|
| TestForInDerived(["null", "a"], {
|
| enumerate: function() { return this.enumerate2() },
|
| - enumerate2: function() { return [null, "a"] },
|
| - getPropertyDescriptor: function(k) {
|
| - return k == "null" || k == "a" ? {configurable: true} : undefined
|
| - }
|
| -})
|
| -
|
| -TestForInDerived(["b", "d"], {
|
| - getPropertyNames: function() { return ["a", "b", "c", "d", "e"] },
|
| - getPropertyDescriptor: function(k) {
|
| - switch (k) {
|
| - case "a": return {enumerable: false, value: "3", configurable: true};
|
| - case "b": return {enumerable: true, get get() {}, configurable: true};
|
| - case "c": return {value: 4, configurable: true};
|
| - case "d": return {get enumerable() { return true }, configurable: true};
|
| - default: return undefined;
|
| - }
|
| - }
|
| + enumerate2: function() { return ["null", "a"].values() },
|
| + has: function(t, k) { return k == "null" || k == "a" }
|
| })
|
|
|
|
|
| @@ -154,15 +126,6 @@ TestForInThrow({
|
| enumerate2: function() { throw "myexn" }
|
| })
|
|
|
| -TestForInThrow({
|
| - getPropertyNames: function() { throw "myexn" }
|
| -})
|
| -
|
| -TestForInThrow({
|
| - getPropertyNames: function() { return ["a"] },
|
| - getPropertyDescriptor: function() { throw "myexn" }
|
| -})
|
| -
|
| TestForInThrow(new Proxy({}, {
|
| get: function(pr, pk) {
|
| return function() { throw "myexn" }
|
| @@ -170,7 +133,7 @@ TestForInThrow(new Proxy({}, {
|
| }));
|
|
|
| (function() {
|
| - var p = new Proxy({}, {enumerate:function() { return [0]; }});
|
| + var p = new Proxy({}, {enumerate:function() { return ["0"].values(); }});
|
| var o = [0];
|
| o.__proto__ = p;
|
| var keys = [];
|
|
|