Index: test/mjsunit/harmony/proxies.js |
diff --git a/test/mjsunit/harmony/proxies.js b/test/mjsunit/harmony/proxies.js |
index f3b355b76da60ff2a173e51e264436bedb1a546b..bebe14e36da33496ea9ffbb1bc4f7ce2c0d5ded8 100644 |
--- a/test/mjsunit/harmony/proxies.js |
+++ b/test/mjsunit/harmony/proxies.js |
@@ -46,9 +46,7 @@ function TestWithObjectProxy(test, x, y, z) { |
} |
function TestWithFunctionProxy(test, x, y, z) { |
- test((handler) => { |
- return new Proxy(function() {}, handler) |
- }, x, y, z) |
+ test((handler) => { return new Proxy(() => {}, handler) }, x, y, z) |
} |
// --------------------------------------------------------------------------- |
@@ -106,8 +104,8 @@ function TestGetOwnPropertyThrow(handler) { |
function TestGetOwnPropertyThrow2(create, handler) { |
var p = create(handler) |
- assertThrows(function(){ Object.getOwnPropertyDescriptor(p, "a") }, "myexn") |
- assertThrows(function(){ Object.getOwnPropertyDescriptor(p, 77) }, "myexn") |
+ assertThrowsEquals(() => Object.getOwnPropertyDescriptor(p, "a"), "myexn") |
+ assertThrowsEquals(() => Object.getOwnPropertyDescriptor(p, 77), "myexn") |
} |
TestGetOwnPropertyThrow({ |
@@ -116,7 +114,7 @@ TestGetOwnPropertyThrow({ |
TestGetOwnPropertyThrow({ |
getOwnPropertyDescriptor: function(k) { |
- return this.getPropertyDescriptor2(k) |
+ return this.getOwnPropertyDescriptor2(k) |
}, |
getOwnPropertyDescriptor2: function(k) { throw "myexn" } |
}) |
@@ -267,18 +265,18 @@ function TestGetThrow(handler) { |
function TestGetThrow2(create, handler) { |
var p = create(handler) |
- assertThrows(function(){ p.a }, "myexn") |
- assertThrows(function(){ p["b"] }, "myexn") |
- assertThrows(function(){ p[3] }, "myexn") |
- assertThrows(function(){ (function(n) { p[n] })("c") }, "myexn") |
- assertThrows(function(){ (function(n) { p[n] })(99) }, "myexn") |
+ assertThrowsEquals(function(){ p.a }, "myexn") |
+ assertThrowsEquals(function(){ p["b"] }, "myexn") |
+ assertThrowsEquals(function(){ p[3] }, "myexn") |
+ assertThrowsEquals(function(){ (function(n) { p[n] })("c") }, "myexn") |
+ assertThrowsEquals(function(){ (function(n) { p[n] })(99) }, "myexn") |
var o = Object.create(p, {x: {value: 88}, '4': {value: 89}}) |
- assertThrows(function(){ o.a }, "myexn") |
- assertThrows(function(){ o["b"] }, "myexn") |
- assertThrows(function(){ o[3] }, "myexn") |
- assertThrows(function(){ (function(n) { o[n] })("c") }, "myexn") |
- assertThrows(function(){ (function(n) { o[n] })(99) }, "myexn") |
+ assertThrowsEquals(function(){ o.a }, "myexn") |
+ assertThrowsEquals(function(){ o["b"] }, "myexn") |
+ assertThrowsEquals(function(){ o[3] }, "myexn") |
+ assertThrowsEquals(function(){ (function(n) { o[n] })("c") }, "myexn") |
+ assertThrowsEquals(function(){ (function(n) { o[n] })(99) }, "myexn") |
} |
TestGetThrow({ |
@@ -358,11 +356,11 @@ function TestSetThrow(handler) { |
function TestSetThrow2(create, handler) { |
var p = create(handler) |
- assertThrows(function(){ p.a = 42 }, "myexn") |
- assertThrows(function(){ p["b"] = 42 }, "myexn") |
- assertThrows(function(){ p[22] = 42 }, "myexn") |
- assertThrows(function(){ (function(n) { p[n] = 45 })("c") }, "myexn") |
- assertThrows(function(){ (function(n) { p[n] = 46 })(99) }, "myexn") |
+ assertThrowsEquals(function(){ p.a = 42 }, "myexn") |
+ assertThrowsEquals(function(){ p["b"] = 42 }, "myexn") |
+ assertThrowsEquals(function(){ p[22] = 42 }, "myexn") |
+ assertThrowsEquals(function(){ (function(n) { p[n] = 45 })("c") }, "myexn") |
+ assertThrowsEquals(function(){ (function(n) { p[n] = 46 })(99) }, "myexn") |
} |
TestSetThrow({ |
@@ -380,7 +378,9 @@ TestSetThrow({ |
}) |
TestSetThrow({ |
- getOwnPropertyDescriptor: function(k) { return {writable: true} }, |
+ getOwnPropertyDescriptor: function(k) { |
+ return {configurable: true, writable: true} |
+ }, |
defineProperty: function(k, desc) { throw "myexn" } |
}) |
@@ -397,7 +397,9 @@ TestSetThrow({ |
getOwnPropertyDescriptor: function(k) { |
return this.getOwnPropertyDescriptor2(k) |
}, |
- getOwnPropertyDescriptor2: function(k) { return {writable: true} }, |
+ getOwnPropertyDescriptor2: function(k) { |
+ return {configurable: true, writable: true} |
+ }, |
defineProperty: function(k, desc) { this.defineProperty2(k, desc) }, |
defineProperty2: function(k, desc) { throw "myexn" } |
}) |
@@ -409,7 +411,10 @@ TestSetThrow({ |
TestSetThrow({ |
getOwnPropertyDescriptor: function(k) { |
- return {get writable() { return true }} |
+ return { |
+ get configurable() { return true }, |
+ get writable() { return true } |
+ } |
}, |
defineProperty: function(k, desc) { throw "myexn" } |
}) |
@@ -419,50 +424,10 @@ TestSetThrow({ |
}) |
TestSetThrow({ |
- getOwnPropertyDescriptor: function(k) { |
- return {set: function(v) { throw "myexn" }} |
- } |
-}) |
- |
-TestSetThrow({ |
getOwnPropertyDescriptor: function(k) { throw "myexn" }, |
- getPropertyDescriptor: function(k) { return {writable: true} }, |
- defineProperty: function(k, desc) { key = k; val = desc.value } |
-}) |
- |
-TestSetThrow({ |
- getOwnPropertyDescriptor: function(k) { return null }, |
- getPropertyDescriptor: function(k) { throw "myexn" }, |
- defineProperty: function(k, desc) { key = k; val = desc.value } |
-}) |
- |
-TestSetThrow({ |
- getOwnPropertyDescriptor: function(k) { return null }, |
- getPropertyDescriptor: function(k) { return {writable: true} }, |
- defineProperty: function(k, desc) { throw "myexn" } |
-}) |
- |
-TestSetThrow({ |
- getOwnPropertyDescriptor: function(k) { return null }, |
- getPropertyDescriptor: function(k) { |
- return {get writable() { throw "myexn" }} |
- }, |
defineProperty: function(k, desc) { key = k; val = desc.value } |
}) |
-TestSetThrow({ |
- getOwnPropertyDescriptor: function(k) { return null }, |
- getPropertyDescriptor: function(k) { |
- return {set: function(v) { throw "myexn" }} |
- } |
-}) |
- |
-TestSetThrow({ |
- getOwnPropertyDescriptor: function(k) { return null }, |
- getPropertyDescriptor: function(k) { return null }, |
- defineProperty: function(k, desc) { throw "myexn" } |
-}) |
- |
TestSetThrow(new Proxy({}, { |
get: function(pr, pk) { throw "myexn" } |
})) |
@@ -577,7 +542,7 @@ function TestDefine2(create, handler) { |
assertEquals(undefined, desc.mine) // Arguably a bug in the spec... |
var props = {bla: {get value() { throw "myexn" }}} |
- assertThrows(function(){ Object.defineProperties(p, props) }, "myexn") |
+ assertThrowsEquals(function(){ Object.defineProperties(p, props) }, "myexn") |
} |
TestDefine({ |
@@ -597,22 +562,22 @@ function TestDefineThrow(handler) { |
function TestDefineThrow2(create, handler) { |
var p = create(handler) |
- assertThrows(function(){ Object.defineProperty(p, "a", {value: 44})}, "myexn") |
- assertThrows(function(){ Object.defineProperty(p, 0, {value: 44})}, "myexn") |
+ assertThrowsEquals(() => Object.defineProperty(p, "a", {value: 44}), "myexn") |
+ assertThrowsEquals(() => Object.defineProperty(p, 0, {value: 44}), "myexn") |
var d1 = create({ |
get: function(r, k) { throw "myexn" }, |
getOwnPropertyNames: function() { return ["value"] } |
}) |
- assertThrows(function(){ Object.defineProperty(p, "p", d1) }, "myexn") |
+ assertThrowsEquals(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") |
+ assertThrowsEquals(function(){ Object.defineProperty(p, "p", d2) }, "myexn") |
var props = {bla: {get value() { throw "otherexn" }}} |
- assertThrows(function(){ Object.defineProperties(p, props) }, "otherexn") |
+ assertThrowsEquals(() => Object.defineProperties(p, props), "otherexn") |
} |
TestDefineThrow({ |
@@ -698,15 +663,15 @@ function TestDeleteThrow(handler) { |
function TestDeleteThrow2(create, handler) { |
var p = create(handler) |
- assertThrows(function(){ delete p.a }, "myexn") |
- assertThrows(function(){ delete p["b"] }, "myexn"); |
- assertThrows(function(){ delete p[3] }, "myexn"); |
+ assertThrowsEquals(function(){ delete p.a }, "myexn") |
+ assertThrowsEquals(function(){ delete p["b"] }, "myexn"); |
+ assertThrowsEquals(function(){ delete p[3] }, "myexn"); |
(function() { |
"use strict" |
- assertThrows(function(){ delete p.c }, "myexn") |
- assertThrows(function(){ delete p["d"] }, "myexn") |
- assertThrows(function(){ delete p[4] }, "myexn"); |
+ assertThrowsEquals(function(){ delete p.c }, "myexn") |
+ assertThrowsEquals(function(){ delete p["d"] }, "myexn") |
+ assertThrowsEquals(function(){ delete p[4] }, "myexn"); |
})() |
} |
@@ -779,7 +744,7 @@ function TestDescriptorThrow(handler) { |
function TestDescriptorThrow2(create, handler) { |
var p = create(handler) |
- assertThrows(function(){ Object.getOwnPropertyDescriptor(p, "a") }, "myexn") |
+ assertThrowsEquals(() => Object.getOwnPropertyDescriptor(p, "a"), "myexn") |
} |
TestDescriptorThrow({ |
@@ -907,13 +872,13 @@ function TestInThrow(handler) { |
function TestInThrow2(create, handler) { |
var p = create(handler) |
- assertThrows(function(){ return "a" in o }, "myexn") |
- assertThrows(function(){ return 99 in o }, "myexn") |
- assertThrows(function(){ return !("a" in o) }, "myexn") |
- assertThrows(function(){ return ("a" in o) ? 2 : 3 }, "myexn") |
- assertThrows(function(){ if ("b" in o) {} }, "myexn") |
- assertThrows(function(){ if (!("b" in o)) {} }, "myexn") |
- assertThrows(function(){ if ("zzz" in o) {} }, "myexn") |
+ assertThrowsEquals(function(){ return "a" in p }, "myexn") |
+ assertThrowsEquals(function(){ return 99 in p }, "myexn") |
+ assertThrowsEquals(function(){ return !("a" in p) }, "myexn") |
+ assertThrowsEquals(function(){ return ("a" in p) ? 2 : 3 }, "myexn") |
+ assertThrowsEquals(function(){ if ("b" in p) {} }, "myexn") |
+ assertThrowsEquals(function(){ if (!("b" in p)) {} }, "myexn") |
+ assertThrowsEquals(function(){ if ("zzz" in p) {} }, "myexn") |
} |
TestInThrow({ |
@@ -925,20 +890,6 @@ TestInThrow({ |
has2: function(k) { throw "myexn" } |
}) |
-TestInThrow({ |
- getPropertyDescriptor: function(k) { throw "myexn" } |
-}) |
- |
-TestInThrow({ |
- getPropertyDescriptor: function(k) { return this.getPropertyDescriptor2(k) }, |
- getPropertyDescriptor2: function(k) { throw "myexn" } |
-}) |
- |
-TestInThrow({ |
- has: undefined, |
- getPropertyDescriptor: function(k) { throw "myexn" } |
-}) |
- |
TestInThrow(new Proxy({},{ |
get: function(pr, pk) { throw "myexn" } |
})) |
@@ -993,9 +944,9 @@ function TestHasOwnThrow(handler) { |
function TestHasOwnThrow2(create, handler) { |
var p = create(handler) |
- assertThrows(function(){ Object.prototype.hasOwnProperty.call(p, "a")}, |
+ assertThrowsEquals(function(){ Object.prototype.hasOwnProperty.call(p, "a")}, |
"myexn") |
- assertThrows(function(){ Object.prototype.hasOwnProperty.call(p, 99)}, |
+ assertThrowsEquals(function(){ Object.prototype.hasOwnProperty.call(p, 99)}, |
"myexn") |
} |
@@ -1182,7 +1133,7 @@ function TestPropertyNamesThrow(handler) { |
function TestPropertyNamesThrow2(create, handler) { |
var p = create(handler) |
- assertThrows(function(){ Object.getOwnPropertyNames(p) }, "myexn") |
+ assertThrowsEquals(function(){ Object.getOwnPropertyNames(p) }, "myexn") |
} |
TestPropertyNamesThrow({ |
@@ -1263,8 +1214,8 @@ function TestKeysThrow(handler) { |
} |
function TestKeysThrow2(create, handler) { |
- var p = create(handler) |
- assertThrows(function(){ Object.keys(p) }, "myexn") |
+ var p = create(handler); |
+ assertThrowsEquals(function(){ Object.keys(p) }, "myexn"); |
} |
TestKeysThrow({ |
@@ -1283,7 +1234,7 @@ TestKeysThrow({ |
TestKeysThrow({ |
ownKeys() { return this.getOwnPropertyNames2() }, |
- getOwnPropertyNames2() { return [1, 2] }, |
+ getOwnPropertyNames2() { return ['1', '2'] }, |
getOwnPropertyDescriptor(k) { |
return this.getOwnPropertyDescriptor2(k) |
}, |
@@ -1302,7 +1253,7 @@ TestKeysThrow({ |
TestKeysThrow({ |
get ownKeys() { |
- return function() { return [1, 2] } |
+ return function() { return ['1', '2'] } |
}, |
getOwnPropertyDescriptor(k) { throw "myexn" } |
}) |
@@ -1361,15 +1312,15 @@ TestToString(new Proxy({}, { |
function TestToStringThrow(handler) { |
var p = new Proxy({}, handler) |
assertEquals("[object Object]", Object.prototype.toString.call(p)) |
- assertThrows(function(){ Object.prototype.toLocaleString.call(p) }, "myexn") |
+ assertThrowsEquals(() => Object.prototype.toLocaleString.call(p), "myexn") |
var f = new Proxy(function(){}, handler) |
assertEquals("[object Function]", Object.prototype.toString.call(f)) |
- assertThrows(function(){ Object.prototype.toLocaleString.call(f) }, "myexn") |
+ assertThrowsEquals(() => Object.prototype.toLocaleString.call(f), "myexn") |
var o = Object.create(p) |
assertEquals("[object Object]", Object.prototype.toString.call(o)) |
- assertThrows(function(){ Object.prototype.toLocaleString.call(o) }, "myexn") |
+ assertThrowsEquals(() => Object.prototype.toLocaleString.call(o), "myexn") |
} |
TestToStringThrow({ |
@@ -1478,10 +1429,10 @@ function TestIsEnumerableThrow(handler) { |
function TestIsEnumerableThrow2(create, handler) { |
var p = create(handler) |
- assertThrows(function(){ Object.prototype.propertyIsEnumerable.call(p, "a") }, |
- "myexn") |
- assertThrows(function(){ Object.prototype.propertyIsEnumerable.call(p, 11) }, |
- "myexn") |
+ assertThrowsEquals(() => Object.prototype.propertyIsEnumerable.call(p, "a"), |
+ "myexn") |
+ assertThrowsEquals(() => Object.prototype.propertyIsEnumerable.call(p, 11), |
+ "myexn") |
} |
TestIsEnumerableThrow({ |