| Index: test/mjsunit/harmony/proxies-with.js
|
| diff --git a/test/mjsunit/harmony/proxies-with.js b/test/mjsunit/harmony/proxies-with.js
|
| deleted file mode 100644
|
| index 1aa13adea6cb8d354c7a0b8863d7e99db22e473c..0000000000000000000000000000000000000000
|
| --- a/test/mjsunit/harmony/proxies-with.js
|
| +++ /dev/null
|
| @@ -1,353 +0,0 @@
|
| -// Copyright 2011 the V8 project authors. All rights reserved.
|
| -// Redistribution and use in source and binary forms, with or without
|
| -// modification, are permitted provided that the following conditions are
|
| -// met:
|
| -//
|
| -// * Redistributions of source code must retain the above copyright
|
| -// notice, this list of conditions and the following disclaimer.
|
| -// * Redistributions in binary form must reproduce the above
|
| -// copyright notice, this list of conditions and the following
|
| -// disclaimer in the documentation and/or other materials provided
|
| -// with the distribution.
|
| -// * Neither the name of Google Inc. nor the names of its
|
| -// contributors may be used to endorse or promote products derived
|
| -// from this software without specific prior written permission.
|
| -//
|
| -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| -
|
| -// Flags: --harmony-proxies
|
| -
|
| -
|
| -// Helper.
|
| -
|
| -function TestWithProxies(test, x, y, z) {
|
| - test(function(h) { return new Proxy({}, h) }, x, y, z)
|
| - test(function(h) {
|
| - return new Proxy(function() {}, h)
|
| - }, x, y, z)
|
| -}
|
| -
|
| -
|
| -
|
| -// Getting.
|
| -
|
| -function TestWithGet(handler) {
|
| - TestWithProxies(TestWithGet2, handler)
|
| -}
|
| -
|
| -var c = "global"
|
| -var key = ""
|
| -
|
| -function TestWithGet2(create, handler) {
|
| - var b = "local"
|
| -
|
| - var p = create(handler);
|
| - assertEquals("onproxy", p.a);
|
| - assertEquals(undefined, p.b);
|
| - assertEquals(undefined, p.c);
|
| -
|
| - with (p) {
|
| - assertEquals("onproxy", a);
|
| - assertEquals("local", b);
|
| - assertEquals("global", c);
|
| - }
|
| -
|
| - var o = Object.create(p, {d: {value: "own"}})
|
| - with (o) {
|
| - assertEquals("onproxy", a)
|
| - assertEquals("local", b);
|
| - assertEquals("global", c)
|
| - assertEquals("own", d)
|
| - }
|
| -}
|
| -
|
| -TestWithGet({
|
| - get(target, k) {
|
| - key = k;
|
| - return k === "a" ? "onproxy" : undefined
|
| - },
|
| - has(target, k) { return k === 'a' }
|
| -})
|
| -
|
| -TestWithGet({
|
| - get: function(r, k) { return this.get2(r, k) },
|
| - get2: function(r, k) { key = k; return k === "a" ? "onproxy" : undefined },
|
| - has(target, k) { return k === 'a' }
|
| -})
|
| -
|
| -
|
| -
|
| -
|
| -// Invoking.
|
| -
|
| -function TestWithGetCall(handler) {
|
| - TestWithProxies(TestWithGetCall2, handler)
|
| -}
|
| -
|
| -var receiver = null
|
| -var c = function() { return "global" }
|
| -
|
| -function TestWithGetCall2(create, handler) {
|
| - var b = function() { return "local" }
|
| -
|
| - var p = create(handler)
|
| - with (p) {
|
| - receiver = null
|
| - assertEquals("onproxy", a())
|
| - assertSame(p, receiver)
|
| - assertEquals("local", b())
|
| - assertEquals("global", c())
|
| - }
|
| -
|
| - var o = Object.create(p, {d: {value: function() { return "own" }}})
|
| - with (o) {
|
| - receiver = null
|
| - assertEquals("onproxy", a())
|
| - assertSame(o, receiver)
|
| - assertEquals("local", b())
|
| - assertEquals("global", c())
|
| - assertEquals("own", d())
|
| - }
|
| -}
|
| -
|
| -function onproxy() { receiver = this; return "onproxy" }
|
| -
|
| -TestWithGetCall({
|
| - get: function(r, k) { key = k; return k === "a" ? onproxy : undefined },
|
| - has: function(t, k) {
|
| - key = k;
|
| - return k === "a";
|
| - }
|
| -})
|
| -
|
| -TestWithGetCall({
|
| - get: function(r, k) { return this.get2(r, k) },
|
| - get2: function(r, k) { key = k; return k === "a" ? onproxy : undefined },
|
| - has: function(t, k) {
|
| - key = k;
|
| - return k === "a";
|
| - }
|
| -})
|
| -
|
| -TestWithGetCall({
|
| - get: function(r, k) { key = k; return k === "a" ? onproxy : undefined },
|
| - has: function(t, k) {
|
| - return this.has2(k)
|
| - },
|
| - has2: function(k) {
|
| - key = k;
|
| - return k === "a";
|
| - }
|
| -})
|
| -
|
| -TestWithGetCall({
|
| - get: function(r, k) { key = k; return k === "a" ? onproxy : undefined },
|
| - has: function(t, k) {
|
| - key = k;
|
| - return k === "a";
|
| - }
|
| -})
|
| -
|
| -
|
| -function TestWithGetCallThrow(handler) {
|
| - TestWithProxies(TestWithGetCallThrow2, handler)
|
| -}
|
| -
|
| -function TestWithGetCallThrow2(create, handler) {
|
| - var b = function() { return "local" }
|
| -
|
| - var p = create(handler)
|
| - with (p) {
|
| - assertThrowsEquals(function(){ a() }, "myexn")
|
| - assertEquals("local", b())
|
| - assertEquals("global", c())
|
| - }
|
| -
|
| - var o = Object.create(p, {d: {value: function() { return "own" }}})
|
| - with (o) {
|
| - assertThrowsEquals(function(){ a() }, "myexn")
|
| - assertEquals("local", b())
|
| - assertEquals("global", c())
|
| - assertEquals("own", d())
|
| - }
|
| -}
|
| -
|
| -function onproxythrow() { throw "myexn" }
|
| -
|
| -TestWithGetCallThrow({
|
| - has: function(r, k) { return k === "a"; },
|
| - get: function(r, k) { key = k; return k === "a" ? onproxythrow : undefined },
|
| -})
|
| -
|
| -TestWithGetCallThrow({
|
| - has: function(r, k) { return k === "a"; },
|
| - get: function(r, k) { return this.get2(r, k) },
|
| - get2: function(r, k) { key = k; return k === "a" ? onproxythrow : undefined },
|
| -})
|
| -
|
| -
|
| -
|
| -// Setting.
|
| -
|
| -var key
|
| -var val
|
| -
|
| -function TestWithSet(handler, hasSetter) {
|
| - TestWithProxies(TestWithSet2, handler, hasSetter)
|
| -}
|
| -
|
| -var c = "global"
|
| -
|
| -function TestWithSet2(create, handler, hasSetter) {
|
| - var b = "local"
|
| -
|
| - var p = create(handler)
|
| - key = val = undefined
|
| - with (p) {
|
| - a = "set"
|
| - assertEquals("a", key)
|
| - assertEquals("set", val)
|
| - assertEquals("local", b)
|
| - assertEquals("global", c)
|
| - b = "local"
|
| - c = "global"
|
| - assertEquals("a", key)
|
| - assertEquals("set", val)
|
| - }
|
| -
|
| - if (!hasSetter) return
|
| -
|
| - var o = Object.create(p, {d: {value: "own"}})
|
| - key = val = undefined
|
| - with (o) {
|
| - a = "set"
|
| - assertEquals("a", key)
|
| - assertEquals("set", val)
|
| - assertEquals("local", b)
|
| - assertEquals("global", c)
|
| - assertEquals("own", d)
|
| - b = "local"
|
| - c = "global"
|
| - d = "own"
|
| - assertEquals("a", key)
|
| - assertEquals("set", val)
|
| - }
|
| -}
|
| -
|
| -TestWithSet({
|
| - set: function(r, k, v) { key = k; val = v; return true },
|
| - has: function(t, k) {
|
| - return k === "a"
|
| - }
|
| -})
|
| -
|
| -TestWithSet({
|
| - set: function(r, k, v) { return this.set2(r, k, v) },
|
| - set2: function(r, k, v) { key = k; val = v; return true },
|
| - has: function(t, k) {
|
| - return k === "a"
|
| - }
|
| -})
|
| -
|
| -TestWithSet({
|
| - has: function(t, k) {
|
| - return k === "a"
|
| - },
|
| - defineProperty: function(t, k, desc) { key = k; val = desc.value }
|
| -})
|
| -
|
| -TestWithSet({
|
| - has: function(t, k) {
|
| - return this.has2(k)
|
| - },
|
| - has2: function(k) {
|
| - return k === "a"
|
| - },
|
| - defineProperty: function(t, k, desc) { this.defineProperty2(k, desc) },
|
| - defineProperty2: function(k, desc) { key = k; val = desc.value }
|
| -})
|
| -
|
| -TestWithSet({
|
| - has: function(t, k) {
|
| - return k === "a"
|
| - },
|
| - defineProperty: function(t, k, desc) { key = k; val = desc.value }
|
| -})
|
| -
|
| -TestWithSet({
|
| - has: function(t, k) {
|
| - return this.has2(k) },
|
| - has2: function(k) {
|
| - return k === "a"
|
| - },
|
| - set: function(t, k, v) { key = k; val = v; return true }
|
| -}, true)
|
| -
|
| -TestWithSet({
|
| - has: function(t, k) {
|
| - return k === "a"
|
| - },
|
| - defineProperty: function(t, k, desc) { key = k; val = desc.value }
|
| -})
|
| -
|
| -
|
| -function TestWithSetThrow(handler, hasSetter) {
|
| - TestWithProxies(TestWithSetThrow2, handler, hasSetter)
|
| -}
|
| -
|
| -function TestWithSetThrow2(create, handler, hasSetter) {
|
| - var p = create(handler)
|
| - assertThrowsEquals(function(){
|
| - with (p) {
|
| - a = 1
|
| - }
|
| - }, "myexn")
|
| -
|
| - if (!hasSetter) return
|
| -
|
| - var o = Object.create(p, {})
|
| - assertThrowsEquals(function(){
|
| - with (o) {
|
| - a = 1
|
| - }
|
| - }, "myexn")
|
| -}
|
| -
|
| -TestWithSetThrow({
|
| - set: function() { throw "myexn" },
|
| - has: function(t, k) {
|
| - return k === "a"
|
| - }
|
| -})
|
| -
|
| -TestWithSetThrow({
|
| - has: function() { throw "myexn" },
|
| -})
|
| -
|
| -TestWithSetThrow({
|
| - has: function() { throw "myexn" },
|
| -})
|
| -
|
| -TestWithSetThrow({
|
| - has: function(t, k) {
|
| - return k === "a"
|
| - },
|
| - defineProperty: function() { throw "myexn" }
|
| -})
|
| -
|
| -TestWithSetThrow({
|
| - has: function(t, k) {
|
| - return k === "a"
|
| - },
|
| - set: function() { throw "myexn" }
|
| -}, true)
|
|
|