summaryrefslogtreecommitdiffstats
path: root/JavaScriptCore/API/tests/testapi.js
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2011-05-06 11:45:16 +0100
committerSteve Block <steveblock@google.com>2011-05-12 13:44:10 +0100
commitcad810f21b803229eb11403f9209855525a25d57 (patch)
tree29a6fd0279be608e0fe9ffe9841f722f0f4e4269 /JavaScriptCore/API/tests/testapi.js
parent121b0cf4517156d0ac5111caf9830c51b69bae8f (diff)
downloadexternal_webkit-cad810f21b803229eb11403f9209855525a25d57.zip
external_webkit-cad810f21b803229eb11403f9209855525a25d57.tar.gz
external_webkit-cad810f21b803229eb11403f9209855525a25d57.tar.bz2
Merge WebKit at r75315: Initial merge by git.
Change-Id: I570314b346ce101c935ed22a626b48c2af266b84
Diffstat (limited to 'JavaScriptCore/API/tests/testapi.js')
-rw-r--r--JavaScriptCore/API/tests/testapi.js251
1 files changed, 0 insertions, 251 deletions
diff --git a/JavaScriptCore/API/tests/testapi.js b/JavaScriptCore/API/tests/testapi.js
deleted file mode 100644
index 15c9e50..0000000
--- a/JavaScriptCore/API/tests/testapi.js
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. 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.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``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 APPLE COMPUTER, INC. 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.
- */
-
-function bludgeonArguments() { if (0) arguments; return function g() {} }
-h = bludgeonArguments();
-gc();
-
-var failed = false;
-function pass(msg)
-{
- print("PASS: " + msg, "green");
-}
-
-function fail(msg)
-{
- print("FAIL: " + msg, "red");
- failed = true;
-}
-
-function shouldBe(a, b)
-{
- var evalA;
- try {
- evalA = eval(a);
- } catch(e) {
- evalA = e;
- }
-
- if (evalA == b || isNaN(evalA) && typeof evalA == 'number' && isNaN(b) && typeof b == 'number')
- pass(a + " should be " + b + " and is.");
- else
- fail(a + " should be " + b + " but instead is " + evalA + ".");
-}
-
-function shouldThrow(a)
-{
- var evalA;
- try {
- eval(a);
- } catch(e) {
- pass(a + " threw: " + e);
- return;
- }
-
- fail(a + " did not throw an exception.");
-}
-
-function globalStaticFunction()
-{
- return 4;
-}
-
-shouldBe("globalStaticValue", 3);
-shouldBe("globalStaticFunction()", 4);
-
-shouldBe("typeof MyObject", "function"); // our object implements 'call'
-MyObject.cantFind = 1;
-shouldBe("MyObject.cantFind", undefined);
-MyObject.regularType = 1;
-shouldBe("MyObject.regularType", 1);
-MyObject.alwaysOne = 2;
-shouldBe("MyObject.alwaysOne", 1);
-MyObject.cantDelete = 1;
-delete MyObject.cantDelete;
-shouldBe("MyObject.cantDelete", 1);
-shouldBe("delete MyObject.throwOnDelete", "an exception");
-MyObject.cantSet = 1;
-shouldBe("MyObject.cantSet", undefined);
-shouldBe("MyObject.throwOnGet", "an exception");
-shouldBe("MyObject.throwOnSet = 5", "an exception");
-shouldBe("MyObject('throwOnCall')", "an exception");
-shouldBe("new MyObject('throwOnConstruct')", "an exception");
-shouldBe("'throwOnHasInstance' instanceof MyObject", "an exception");
-
-var foundMyPropertyName = false;
-var foundRegularType = false;
-for (var p in MyObject) {
- if (p == "myPropertyName")
- foundMyPropertyName = true;
- if (p == "regularType")
- foundRegularType = true;
-}
-
-if (foundMyPropertyName)
- pass("MyObject.myPropertyName was enumerated");
-else
- fail("MyObject.myPropertyName was not enumerated");
-
-if (foundRegularType)
- pass("MyObject.regularType was enumerated");
-else
- fail("MyObject.regularType was not enumerated");
-
-var alwaysOneDescriptor = Object.getOwnPropertyDescriptor(MyObject, "alwaysOne");
-shouldBe('typeof alwaysOneDescriptor', "object");
-shouldBe('alwaysOneDescriptor.value', MyObject.alwaysOne);
-shouldBe('alwaysOneDescriptor.configurable', true);
-shouldBe('alwaysOneDescriptor.enumerable', false); // Actually it is.
-var cantFindDescriptor = Object.getOwnPropertyDescriptor(MyObject, "cantFind");
-shouldBe('typeof cantFindDescriptor', "object");
-shouldBe('cantFindDescriptor.value', MyObject.cantFind);
-shouldBe('cantFindDescriptor.configurable', true);
-shouldBe('cantFindDescriptor.enumerable', false);
-try {
- // If getOwnPropertyDescriptor() returned an access descriptor, this wouldn't throw.
- Object.getOwnPropertyDescriptor(MyObject, "throwOnGet");
-} catch (e) {
- pass("getting property descriptor of throwOnGet threw exception");
-}
-var myPropertyNameDescriptor = Object.getOwnPropertyDescriptor(MyObject, "myPropertyName");
-shouldBe('typeof myPropertyNameDescriptor', "object");
-shouldBe('myPropertyNameDescriptor.value', MyObject.myPropertyName);
-shouldBe('myPropertyNameDescriptor.configurable', true);
-shouldBe('myPropertyNameDescriptor.enumerable', false); // Actually it is.
-try {
- // if getOwnPropertyDescriptor() returned an access descriptor, this wouldn't throw.
- Object.getOwnPropertyDescriptor(MyObject, "hasPropertyLie");
-} catch (e) {
- pass("getting property descriptor of hasPropertyLie threw exception");
-}
-shouldBe('Object.getOwnPropertyDescriptor(MyObject, "doesNotExist")', undefined);
-
-myObject = new MyObject();
-
-shouldBe("delete MyObject.regularType", true);
-shouldBe("MyObject.regularType", undefined);
-shouldBe("MyObject(0)", 1);
-shouldBe("MyObject()", undefined);
-shouldBe("typeof myObject", "object");
-shouldBe("MyObject ? 1 : 0", true); // toBoolean
-shouldBe("+MyObject", 1); // toNumber
-shouldBe("(MyObject.toString())", "[object MyObject]"); // toString
-shouldBe("String(MyObject)", "MyObjectAsString"); // type conversion to string
-shouldBe("MyObject - 0", 1); // toNumber
-
-shouldBe("typeof MyConstructor", "object");
-constructedObject = new MyConstructor(1);
-shouldBe("typeof constructedObject", "object");
-shouldBe("constructedObject.value", 1);
-shouldBe("myObject instanceof MyObject", true);
-shouldBe("(new Object()) instanceof MyObject", false);
-
-shouldThrow("MyObject.nullGetSet = 1");
-shouldThrow("MyObject.nullGetSet");
-shouldThrow("MyObject.nullCall()");
-shouldThrow("MyObject.hasPropertyLie");
-
-derived = new Derived();
-
-shouldBe("derived instanceof Derived", true);
-shouldBe("derived instanceof Base", true);
-
-// base properties and functions return 1 when called/gotten; derived, 2
-shouldBe("derived.baseProtoDup()", 2);
-shouldBe("derived.baseProto()", 1);
-shouldBe("derived.baseDup", 2);
-shouldBe("derived.baseOnly", 1);
-shouldBe("derived.protoOnly()", 2);
-shouldBe("derived.protoDup", 2);
-shouldBe("derived.derivedOnly", 2)
-
-// base properties throw 1 when set; derived, 2
-shouldBe("derived.baseDup = 0", 2);
-shouldBe("derived.baseOnly = 0", 1);
-shouldBe("derived.derivedOnly = 0", 2)
-shouldBe("derived.protoDup = 0", 2);
-
-derived2 = new Derived2();
-
-shouldBe("derived2 instanceof Derived2", true);
-shouldBe("derived2 instanceof Derived", true);
-shouldBe("derived2 instanceof Base", true);
-
-// base properties and functions return 1 when called/gotten; derived, 2
-shouldBe("derived2.baseProtoDup()", 2);
-shouldBe("derived2.baseProto()", 1);
-shouldBe("derived2.baseDup", 2);
-shouldBe("derived2.baseOnly", 1);
-shouldBe("derived2.protoOnly()", 2);
-shouldBe("derived2.protoDup", 2);
-shouldBe("derived2.derivedOnly", 2)
-
-// base properties throw 1 when set; derived, 2
-shouldBe("derived2.baseDup = 0", 2);
-shouldBe("derived2.baseOnly = 0", 1);
-shouldBe("derived2.derivedOnly = 0", 2)
-shouldBe("derived2.protoDup = 0", 2);
-
-shouldBe('Object.getOwnPropertyDescriptor(derived, "baseProto")', undefined);
-shouldBe('Object.getOwnPropertyDescriptor(derived, "baseProtoDup")', undefined);
-var baseDupDescriptor = Object.getOwnPropertyDescriptor(derived, "baseDup");
-shouldBe('typeof baseDupDescriptor', "object");
-shouldBe('baseDupDescriptor.value', derived.baseDup);
-shouldBe('baseDupDescriptor.configurable', true);
-shouldBe('baseDupDescriptor.enumerable', false);
-var baseOnlyDescriptor = Object.getOwnPropertyDescriptor(derived, "baseOnly");
-shouldBe('typeof baseOnlyDescriptor', "object");
-shouldBe('baseOnlyDescriptor.value', derived.baseOnly);
-shouldBe('baseOnlyDescriptor.configurable', true);
-shouldBe('baseOnlyDescriptor.enumerable', false);
-shouldBe('Object.getOwnPropertyDescriptor(derived, "protoOnly")', undefined);
-var protoDupDescriptor = Object.getOwnPropertyDescriptor(derived, "protoDup");
-shouldBe('typeof protoDupDescriptor', "object");
-shouldBe('protoDupDescriptor.value', derived.protoDup);
-shouldBe('protoDupDescriptor.configurable', true);
-shouldBe('protoDupDescriptor.enumerable', false);
-var derivedOnlyDescriptor = Object.getOwnPropertyDescriptor(derived, "derivedOnly");
-shouldBe('typeof derivedOnlyDescriptor', "object");
-shouldBe('derivedOnlyDescriptor.value', derived.derivedOnly);
-shouldBe('derivedOnlyDescriptor.configurable', true);
-shouldBe('derivedOnlyDescriptor.enumerable', false);
-
-shouldBe("undefined instanceof MyObject", false);
-EvilExceptionObject.hasInstance = function f() { return f(); };
-EvilExceptionObject.__proto__ = undefined;
-shouldThrow("undefined instanceof EvilExceptionObject");
-EvilExceptionObject.hasInstance = function () { return true; };
-shouldBe("undefined instanceof EvilExceptionObject", true);
-
-EvilExceptionObject.toNumber = function f() { return f(); }
-shouldThrow("EvilExceptionObject*5");
-EvilExceptionObject.toStringExplicit = function f() { return f(); }
-shouldThrow("String(EvilExceptionObject)");
-
-shouldBe("EmptyObject", "[object CallbackObject]");
-
-if (failed)
- throw "Some tests failed";
-