From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- .../observable-operations.js | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 js/src/tests/test262/built-ins/Object/getOwnPropertyDescriptors/observable-operations.js (limited to 'js/src/tests/test262/built-ins/Object/getOwnPropertyDescriptors/observable-operations.js') 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'); -- cgit v1.2.3