| Index: test/mjsunit/harmony/proxies-with-unscopables.js
|
| diff --git a/test/mjsunit/harmony/proxies-with-unscopables.js b/test/mjsunit/harmony/proxies-with-unscopables.js
|
| deleted file mode 100644
|
| index c87492c61d1dcb51447e41ef3a5871fc8f37b52b..0000000000000000000000000000000000000000
|
| --- a/test/mjsunit/harmony/proxies-with-unscopables.js
|
| +++ /dev/null
|
| @@ -1,148 +0,0 @@
|
| -// Copyright 2014 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
|
| -
|
| -
|
| -function TestBasics() {
|
| - var log = [];
|
| -
|
| - var proxy = new Proxy({}, {
|
| - get: function(target, key) {
|
| - log.push("get " + String(key));
|
| - if (key === 'x') return 1;
|
| - },
|
| - has: function(target, key) {
|
| - log.push("has " + String(key));
|
| - if (key === 'x') return true;
|
| - return false;
|
| - }
|
| - });
|
| -
|
| - var x = 'local';
|
| -
|
| - with (proxy) {
|
| - assertEquals(1, x);
|
| - }
|
| -
|
| - assertEquals(['has assertEquals', 'has x', 'get Symbol(Symbol.unscopables)',
|
| - 'get x'], log);
|
| -}
|
| -TestBasics();
|
| -
|
| -
|
| -function TestInconsistent() {
|
| - var log = [];
|
| -
|
| - var proxy = new Proxy({}, {
|
| - get: function(target, key) {
|
| - log.push("get " + String(key));
|
| - return undefined;
|
| - },
|
| - has: function(target, key) {
|
| - log.push("has " + String(key));
|
| - if (key === 'x') return true;
|
| - return false;
|
| - }
|
| - });
|
| -
|
| - var x = 'local';
|
| -
|
| - with (proxy) {
|
| - assertEquals(void 0, x);
|
| - }
|
| -
|
| - assertEquals(['has assertEquals', 'has x', 'get Symbol(Symbol.unscopables)',
|
| - 'get x'], log);
|
| -}
|
| -TestInconsistent();
|
| -
|
| -
|
| -function TestUseProxyAsUnscopables() {
|
| - var x = 1;
|
| - var object = {
|
| - x: 2
|
| - };
|
| - var calls = 0;
|
| - var proxy = new Proxy({}, {
|
| - has: function() {
|
| - assertUnreachable();
|
| - },
|
| - get: function(target, key) {
|
| - assertEquals('x', key);
|
| - calls++;
|
| - return calls === 2 ? true : undefined;
|
| - }
|
| - });
|
| -
|
| - object[Symbol.unscopables] = proxy;
|
| -
|
| - with (object) {
|
| - assertEquals(2, x);
|
| - assertEquals(1, x);
|
| - }
|
| -
|
| - // HasBinding, HasBinding
|
| - assertEquals(2, calls);
|
| -}
|
| -TestUseProxyAsUnscopables();
|
| -
|
| -
|
| -function TestThrowInHasUnscopables() {
|
| - var x = 1;
|
| - var object = {
|
| - x: 2
|
| - };
|
| -
|
| - function CustomError() {}
|
| -
|
| - var calls = 0;
|
| - var proxy = new Proxy({}, {
|
| - has: function() {
|
| - assertUnreachable();
|
| - },
|
| - get: function(target, key) {
|
| - if (calls++ === 0) {
|
| - throw new CustomError();
|
| - }
|
| - assertUnreachable();
|
| - }
|
| - });
|
| -
|
| - object[Symbol.unscopables] = proxy;
|
| -
|
| - assertThrows(function() {
|
| - with (object) {
|
| - x;
|
| - }
|
| - }, CustomError);
|
| -}
|
| -TestThrowInHasUnscopables();
|
| -
|
| -
|
| -var global = this;
|
| -function TestGlobalShouldIgnoreUnscopables() {
|
| - global.x = 1;
|
| - var proxy = new Proxy({}, {
|
| - get: function() {
|
| - assertUnreachable();
|
| - },
|
| - has: function() {
|
| - assertUnreachable();
|
| - }
|
| - });
|
| - global[Symbol.unscopables] = proxy;
|
| -
|
| - assertEquals(1, global.x);
|
| - assertEquals(1, x);
|
| -
|
| - global.x = 2;
|
| - assertEquals(2, global.x);
|
| - assertEquals(2, x);
|
| -
|
| - x = 3;
|
| - assertEquals(3, global.x);
|
| - assertEquals(3, x);
|
| -}
|
| -TestGlobalShouldIgnoreUnscopables();
|
|
|