summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/built-ins/Object/getOwnPropertyDescriptors/observable-operations.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /js/src/tests/test262/built-ins/Object/getOwnPropertyDescriptors/observable-operations.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'js/src/tests/test262/built-ins/Object/getOwnPropertyDescriptors/observable-operations.js')
-rw-r--r--js/src/tests/test262/built-ins/Object/getOwnPropertyDescriptors/observable-operations.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/Object/getOwnPropertyDescriptors/observable-operations.js b/js/src/tests/test262/built-ins/Object/getOwnPropertyDescriptors/observable-operations.js
new file mode 100644
index 000000000..c1211613d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/Object/getOwnPropertyDescriptors/observable-operations.js
@@ -0,0 +1,34 @@
+// Copyright (C) 2016 Jordan Harband. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+description: Object.getOwnPropertyDescriptors should perform observable operations in the correct order
+esid: pending
+author: Jordan Harband
+features: [Proxy]
+includes: [proxyTrapsHelper.js]
+---*/
+
+var log = "";
+var object = { a: 0, b: 0, c: 0 };
+var handler = {
+ getOwnPropertyDescriptor: function (target, propertyKey) {
+ assert.sameValue(target, object, "getOwnPropertyDescriptor");
+ log += "|getOwnPropertyDescriptor:" + propertyKey;
+ return Object.getOwnPropertyDescriptor(target, propertyKey);
+ },
+ ownKeys: function (target) {
+ assert.sameValue(target, object, "ownKeys");
+ log += "|ownKeys";
+ return Object.getOwnPropertyNames(target);
+ }
+};
+var check = {
+ get: function (target, propertyKey, receiver) {
+ assertEq(propertyKey in target, true, "handler check: " + propertyKey);
+ return target[propertyKey];
+ }
+};
+var proxy = new Proxy(object, new Proxy(handler, check));
+var result = Object.getOwnPropertyDescriptors(proxy);
+assert.sameValue(log, "|ownKeys|getOwnPropertyDescriptor:a|getOwnPropertyDescriptor:b|getOwnPropertyDescriptor:c", 'log');