| Index: test/mjsunit/harmony/proxies.js
|
| diff --git a/test/mjsunit/harmony/proxies.js b/test/mjsunit/harmony/proxies.js
|
| index ad8d86a5dd26acf26629f0d4ef2a1a72deb1a635..9aec16c390561eac87f777a650788aaf6a0fce17 100644
|
| --- a/test/mjsunit/harmony/proxies.js
|
| +++ b/test/mjsunit/harmony/proxies.js
|
| @@ -28,9 +28,6 @@
|
| // Flags: --harmony-proxies
|
|
|
|
|
| -// TODO(rossberg): for-in not implemented on proxies.
|
| -
|
| -
|
| // Helper.
|
|
|
| function TestWithProxies(test, x, y, z) {
|
| @@ -719,17 +716,17 @@ function TestDefine2(create, handler) {
|
| assertEquals("zzz", key)
|
| assertEquals(0, Object.getOwnPropertyNames(desc).length)
|
|
|
| -// TODO(rossberg): This test requires for-in on proxies.
|
| -// var d = create({
|
| -// get: function(r, k) { return (k === "value") ? 77 : void 0 },
|
| -// getOwnPropertyNames: function() { return ["value"] }
|
| -// })
|
| -// assertEquals(1, Object.getOwnPropertyNames(d).length)
|
| -// assertEquals(77, d.value)
|
| -// assertEquals(p, Object.defineProperty(p, "p", d))
|
| -// assertEquals("p", key)
|
| -// assertEquals(1, Object.getOwnPropertyNames(desc).length)
|
| -// assertEquals(77, desc.value)
|
| + var d = create({
|
| + get: function(r, k) { return (k === "value") ? 77 : void 0 },
|
| + getOwnPropertyNames: function() { return ["value"] },
|
| + enumerate: function() { return ["value"] }
|
| + })
|
| + assertEquals(1, Object.getOwnPropertyNames(d).length)
|
| + assertEquals(77, d.value)
|
| + assertEquals(p, Object.defineProperty(p, "p", d))
|
| + assertEquals("p", key)
|
| + assertEquals(1, Object.getOwnPropertyNames(desc).length)
|
| + assertEquals(77, desc.value)
|
|
|
| var props = {
|
| '11': {},
|
| @@ -774,17 +771,16 @@ function TestDefineThrow2(create, handler) {
|
| assertThrows(function(){ Object.defineProperty(p, "a", {value: 44})}, "myexn")
|
| assertThrows(function(){ Object.defineProperty(p, 0, {value: 44})}, "myexn")
|
|
|
| -// TODO(rossberg): These tests require for-in on proxies.
|
| -// var d1 = create({
|
| -// get: function(r, k) { throw "myexn" },
|
| -// getOwnPropertyNames: function() { return ["value"] }
|
| -// })
|
| -// assertThrows(function(){ Object.defineProperty(p, "p", d1) }, "myexn")
|
| -// var d2 = create({
|
| -// get: function(r, k) { return 77 },
|
| -// getOwnPropertyNames: function() { throw "myexn" }
|
| -// })
|
| -// assertThrows(function(){ Object.defineProperty(p, "p", d2) }, "myexn")
|
| + var d1 = create({
|
| + get: function(r, k) { throw "myexn" },
|
| + getOwnPropertyNames: function() { return ["value"] }
|
| + })
|
| + assertThrows(function(){ Object.defineProperty(p, "p", d1) }, "myexn")
|
| + var d2 = create({
|
| + get: function(r, k) { return 77 },
|
| + getOwnPropertyNames: function() { throw "myexn" }
|
| + })
|
| + assertThrows(function(){ Object.defineProperty(p, "p", d2) }, "myexn")
|
|
|
| var props = {bla: {get value() { throw "otherexn" }}}
|
| assertThrows(function(){ Object.defineProperties(p, props) }, "otherexn")
|
| @@ -1606,7 +1602,9 @@ TestKeys(["[object Object]"], {
|
|
|
| TestKeys(["a", "0"], {
|
| getOwnPropertyNames: function() { return ["a", 23, "zz", "", 0] },
|
| - getOwnPropertyDescriptor: function(k) { return {enumerable: k.length == 1} }
|
| + getOwnPropertyDescriptor: function(k) {
|
| + return k == "" ? undefined : {enumerable: k.length == 1}
|
| + }
|
| })
|
|
|
| TestKeys(["23", "zz", ""], {
|
| @@ -1620,10 +1618,12 @@ TestKeys(["23", "zz", ""], {
|
|
|
| TestKeys(["a", "b", "c", "5"], {
|
| get getOwnPropertyNames() {
|
| - return function() { return ["0", 4, "a", "b", "c", 5] }
|
| + return function() { return ["0", 4, "a", "b", "c", 5, "ety"] }
|
| },
|
| get getOwnPropertyDescriptor() {
|
| - return function(k) { return {enumerable: k >= "44"} }
|
| + return function(k) {
|
| + return k == "ety" ? undefined : {enumerable: k >= "44"}
|
| + }
|
| }
|
| })
|
|
|
|
|