Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(35)

Unified Diff: test/mjsunit/harmony/proxies-set.js

Issue 1815773002: Remove runtime flags for Proxy and Reflect (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebased Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/mjsunit/harmony/proxies-revocable.js ('k') | test/mjsunit/harmony/proxies-set-prototype-of.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/mjsunit/harmony/proxies-set.js
diff --git a/test/mjsunit/harmony/proxies-set.js b/test/mjsunit/harmony/proxies-set.js
deleted file mode 100644
index 2fec115a103ea05d0a49fa350381e157f679487a..0000000000000000000000000000000000000000
--- a/test/mjsunit/harmony/proxies-set.js
+++ /dev/null
@@ -1,312 +0,0 @@
-// Copyright 2015 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Flags: --harmony-proxies --harmony-reflect
-
-
-function sloppyDefaultSet(o, p, v) { return o[p] = v }
-function sloppyReflectSet(o, p, v) { return Reflect.set(o, p, v) }
-function strictDefaultSet(o, p, v) { "use strict"; return o[p] = v }
-function strictReflectSet(o, p, v) { "use strict"; return Reflect.set(o, p, v) }
-
-sloppyDefaultSet.shouldThrow = false;
-sloppyReflectSet.shouldThrow = false;
-strictDefaultSet.shouldThrow = true;
-strictReflectSet.shouldThrow = false;
-
-sloppyDefaultSet.returnsBool = false;
-sloppyReflectSet.returnsBool = true;
-strictDefaultSet.returnsBool = false;
-strictReflectSet.returnsBool = true;
-
-
-function assertTrueIf(flag, x) { if (flag) assertTrue(x) }
-function assertFalseIf(flag, x) { if (flag) assertFalse(x) }
-function assertSetFails(mySet, o, p, v) {
- if (mySet.shouldThrow) {
- assertThrows(() => mySet(o, p, v), TypeError);
- } else {
- assertFalseIf(mySet.returnsBool, mySet(o, p, v));
- }
-}
-
-
-function dataDescriptor(x) {
- return {value: x, writable: true, enumerable: true, configurable: true};
-}
-
-
-function toKey(x) {
- if (typeof x === "symbol") return x;
- return String(x);
-}
-
-
-var properties =
- ["bla", "0", 1, Symbol(), {[Symbol.toPrimitive]() {return "a"}}];
-
-
-function TestForwarding(handler, mySet) {
- assertTrue(undefined == handler.set);
- assertTrue(undefined == handler.getOwnPropertyDescriptor);
- assertTrue(undefined == handler.defineProperty);
-
- var target = {};
- var proxy = new Proxy(target, handler);
-
- // Property does not exist on target.
- for (var p of properties) {
- assertTrueIf(mySet.returnsBool, mySet(proxy, p, 42));
- assertSame(42, target[p]);
- }
-
- // Property exists as writable data on target.
- for (var p of properties) {
- assertTrueIf(mySet.returnsBool, mySet(proxy, p, 0));
- assertSame(0, target[p]);
- }
-
- // Property exists as non-writable data on target.
- for (var p of properties) {
- Object.defineProperty(target, p,
- {value: 42, configurable: true, writable: false});
- assertSetFails(mySet, proxy, p, 42);
- assertSetFails(mySet, proxy, p, 0);
- assertEquals(42, target[p]);
- }
-};
-
-(function () {
- // No trap.
- var handler = {};
- TestForwarding(handler, sloppyDefaultSet);
- TestForwarding(handler, sloppyReflectSet);
- TestForwarding(handler, strictDefaultSet);
- TestForwarding(handler, strictReflectSet);
-})();
-
-(function () {
- // "Undefined" trap.
- var handler = { set: null };
- TestForwarding(handler, sloppyDefaultSet);
- TestForwarding(handler, sloppyReflectSet);
- TestForwarding(handler, strictDefaultSet);
- TestForwarding(handler, strictReflectSet);
-})();
-
-
-function TestForwarding2(mySet) {
- // Check that setting on a proxy without "set" trap correctly triggers its
- // "getOwnProperty" trap and its "defineProperty" trap.
-
- var target = {};
- var handler = {};
- var observations = [];
- var proxy = new Proxy(target, handler);
-
- handler.getOwnPropertyDescriptor = function() {
- observations.push(arguments);
- return Reflect.getOwnPropertyDescriptor(...arguments);
- }
-
- handler.defineProperty = function() {
- observations.push(arguments);
- return Reflect.defineProperty(...arguments);
- }
-
- for (var p of properties) {
- mySet(proxy, p, 42);
- assertEquals(2, observations.length)
- assertArrayEquals([target, toKey(p)], observations[0]);
- assertSame(target, observations[0][0]);
- assertArrayEquals([target, toKey(p), dataDescriptor(42)], observations[1]);
- assertSame(target, observations[1][0]);
- observations = [];
-
- mySet(proxy, p, 42);
- assertEquals(2, observations.length)
- assertArrayEquals([target, toKey(p)], observations[0]);
- assertSame(target, observations[0][0]);
- assertArrayEquals([target, toKey(p), {value: 42}], observations[1]);
- assertSame(target, observations[1][0]);
- observations = [];
- }
-}
-
-TestForwarding2(sloppyDefaultSet);
-TestForwarding2(sloppyReflectSet);
-TestForwarding2(strictDefaultSet);
-TestForwarding2(strictReflectSet);
-
-
-function TestInvalidTrap(proxy, mySet) {
- for (var p of properties) {
- assertThrows(() => mySet(proxy, p, 42), TypeError);
- }
-}
-
-(function () {
- var target = {};
- var handler = { set: true };
- var proxy = new Proxy(target, handler);
-
- TestInvalidTrap(proxy, sloppyDefaultSet);
- TestInvalidTrap(proxy, sloppyReflectSet);
- TestInvalidTrap(proxy, strictDefaultSet);
- TestInvalidTrap(proxy, strictReflectSet);
-})();
-
-
-function TestTrappingFalsish(mySet) {
- var target = {};
- var handler = { set() {return ""} };
- var proxy = new Proxy(target, handler);
-
- for (var p of properties) {
- assertSetFails(mySet, proxy, p, 42);
- }
-}
-
-TestTrappingFalsish(sloppyDefaultSet);
-TestTrappingFalsish(sloppyReflectSet);
-TestTrappingFalsish(strictDefaultSet);
-TestTrappingFalsish(strictReflectSet);
-
-
-function TestTrappingTrueish(mySet) {
- var target = {};
- var handler = { set() {return 42} };
- var proxy = new Proxy(target, handler);
-
- // Trap returns trueish and property does not exist in target.
- for (var p of properties) {
- assertTrueIf(mySet.returnsBool, mySet(proxy, p, 0));
- }
-
- // Trap returns trueish and target property is configurable or writable data.
- for (var p of properties) {
- Object.defineProperty(target, p, {configurable: true, writable: true});
- assertTrueIf(mySet.returnsBool, mySet(proxy, p, 0));
- Object.defineProperty(target, p, {configurable: true, writable: false});
- assertTrueIf(mySet.returnsBool, mySet(proxy, p, 0));
- Object.defineProperty(target, p, {configurable: false, writable: true});
- assertTrueIf(mySet.returnsBool, mySet(proxy, p, 0));
- }
-}
-
-TestTrappingTrueish(sloppyDefaultSet);
-TestTrappingTrueish(sloppyReflectSet);
-TestTrappingTrueish(strictDefaultSet);
-TestTrappingTrueish(strictReflectSet);
-
-
-function TestTrappingTrueish2(mySet) {
- var target = {};
- var handler = { set() {return 42} };
- var proxy = new Proxy(target, handler);
-
- // Trap returns trueish but target property is frozen data.
- for (var p of properties) {
- Object.defineProperty(target, p, {
- configurable: false, writable: false, value: 0
- });
- assertThrows(() => mySet(proxy, p, 666), TypeError); // New value.
- assertTrueIf(mySet.returnsBool, mySet(proxy, p, 0)); // Old value.
- }
-};
-
-TestTrappingTrueish2(sloppyDefaultSet);
-TestTrappingTrueish2(sloppyReflectSet);
-TestTrappingTrueish2(strictDefaultSet);
-TestTrappingTrueish2(strictReflectSet);
-
-
-function TestTrappingTrueish3(mySet) {
- var target = {};
- var handler = { set() {return 42} };
- var proxy = new Proxy(target, handler);
-
- // Trap returns trueish and target property is configurable accessor.
- for (var p of properties) {
- Object.defineProperty(target, p, { configurable: true, set: undefined });
- assertTrueIf(mySet.returnsBool, mySet(proxy, p, 0));
- }
-
- // Trap returns trueish and target property is non-configurable accessor.
- for (var p of properties) {
- Object.defineProperty(target, p, { configurable: false, set: undefined });
- assertThrows(() => mySet(proxy, p, 0));
- }
-};
-
-TestTrappingTrueish3(sloppyDefaultSet);
-TestTrappingTrueish3(sloppyReflectSet);
-TestTrappingTrueish3(strictDefaultSet);
-TestTrappingTrueish3(strictReflectSet);
-
-
-function TestTrapReceiverArgument(mySet) {
- var target = {};
- var handler = {};
- var observations = [];
- var proxy = new Proxy(target, handler);
- var object = Object.create(proxy);
-
- handler.set = function() {
- observations.push(arguments);
- return Reflect.set(...arguments);
- }
-
- for (var p of properties) {
- mySet(object, p, 42);
- assertEquals(1, observations.length)
- assertArrayEquals([target, toKey(p), 42, object], observations[0]);
- assertSame(target, observations[0][0]);
- assertSame(object, observations[0][3]);
- observations = [];
- }
-};
-
-TestTrapReceiverArgument(sloppyDefaultSet);
-TestTrapReceiverArgument(sloppyReflectSet);
-TestTrapReceiverArgument(strictDefaultSet);
-TestTrapReceiverArgument(strictReflectSet);
-
-
-(function TestTrapReceiverArgument2() {
- // Check that non-object receiver is passed through as well.
-
- var target = {};
- var handler = {};
- var observations = [];
- var proxy = new Proxy(target, handler);
-
- handler.set = function() {
- observations.push(arguments);
- return Reflect.set(...arguments);
- }
-
- for (var p of properties) {
- for (var receiver of [null, undefined, 1]) {
- Reflect.set(proxy, p, 42, receiver);
- assertEquals(1, observations.length)
- assertArrayEquals([target, toKey(p), 42, receiver], observations[0]);
- assertSame(target, observations[0][0]);
- assertSame(receiver, observations[0][3]);
- observations = [];
- }
- }
-
- var object = Object.create(proxy);
- for (var p of properties) {
- for (var receiver of [null, undefined, 1]) {
- Reflect.set(object, p, 42, receiver);
- assertEquals(1, observations.length);
- assertArrayEquals([target, toKey(p), 42, receiver], observations[0]);
- assertSame(target, observations[0][0]);
- assertSame(receiver, observations[0][3]);
- observations = [];
- }
- }
-})();
« no previous file with comments | « test/mjsunit/harmony/proxies-revocable.js ('k') | test/mjsunit/harmony/proxies-set-prototype-of.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698