summaryrefslogtreecommitdiffstats
path: root/JavaScriptCore/tests/mozilla/ecma_2
diff options
context:
space:
mode:
Diffstat (limited to 'JavaScriptCore/tests/mozilla/ecma_2')
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_2/instanceof/instanceof-003.js19
-rw-r--r--JavaScriptCore/tests/mozilla/ecma_2/instanceof/regress-7635.js70
2 files changed, 48 insertions, 41 deletions
diff --git a/JavaScriptCore/tests/mozilla/ecma_2/instanceof/instanceof-003.js b/JavaScriptCore/tests/mozilla/ecma_2/instanceof/instanceof-003.js
index 1b0a01b..c8f84ba 100644
--- a/JavaScriptCore/tests/mozilla/ecma_2/instanceof/instanceof-003.js
+++ b/JavaScriptCore/tests/mozilla/ecma_2/instanceof/instanceof-003.js
@@ -16,6 +16,19 @@ I think this should be 'false'
Author: christine@netscape.com
Date: 12 november 1997
+
+
+The test case described above is correct, however the second test case in this file is not,
+'o instanceof o' should thow an exception. According to ECMA-262:
+
+ 8.6.2 Internal Properties and Methods:
+ "... only Function objects implement [[HasInstance]]"
+ 11.8.6 The instanceof operator:
+ "6.If Result(4) does not have a [[HasInstance]] method, throw a TypeError exception."
+
+{} does not implement [[HasInstance]] (since it is not a function), so passing it as the
+constructor to be tested to instanceof should result in a TypeError being thrown.
+
*/
var SECTION = "instanceof-003";
var VERSION = "ECMA_2";
@@ -35,12 +48,10 @@ I think this should be 'false'
theproto instanceof Foo );
- var o = {};
-
AddTestCase(
"o = {}; o instanceof o",
- false,
- o instanceof o );
+ "EXCEPTION",
+ (function(){ try { var o = {}; o instanceof o; return "no exception"; } catch (e) { return "EXCEPTION"; } } )() );
test();
diff --git a/JavaScriptCore/tests/mozilla/ecma_2/instanceof/regress-7635.js b/JavaScriptCore/tests/mozilla/ecma_2/instanceof/regress-7635.js
index 4ccb9d4..cab6ed9 100644
--- a/JavaScriptCore/tests/mozilla/ecma_2/instanceof/regress-7635.js
+++ b/JavaScriptCore/tests/mozilla/ecma_2/instanceof/regress-7635.js
@@ -26,49 +26,45 @@
* Author:
*/
- var SECTION = "instanceof"; // provide a document reference (ie, ECMA section)
- var VERSION = "ECMA_2"; // Version of JavaScript or ECMA
- var TITLE = "Regression test for Bugzilla #7635"; // Provide ECMA section title or a description
- var BUGNUMBER = "http://bugzilla.mozilla.org/show_bug.cgi?id=7635"; // Provide URL to bugsplat or bugzilla report
+var SECTION = "instanceof"; // provide a document reference (ie, ECMA section)
+var VERSION = "ECMA_2"; // Version of JavaScript or ECMA
+var TITLE = "Regression test for Bugzilla #7635"; // Provide ECMA section title or a description
+var BUGNUMBER = "http://bugzilla.mozilla.org/show_bug.cgi?id=7635"; // Provide URL to bugsplat or bugzilla report
- startTest(); // leave this alone
+startTest(); // leave this alone
- /*
- * Calls to AddTestCase here. AddTestCase is a function that is defined
- * in shell.js and takes three arguments:
- * - a string representation of what is being tested
- * - the expected result
- * - the actual result
- *
- * For example, a test might look like this:
- *
- * var zip = /[\d]{5}$/;
- *
- * AddTestCase(
- * "zip = /[\d]{5}$/; \"PO Box 12345 Boston, MA 02134\".match(zip)", // description of the test
- * "02134", // expected result
- * "PO Box 12345 Boston, MA 02134".match(zip) ); // actual result
- *
- */
-
- function Foo() {}
- theproto = {};
- Foo.prototype = theproto
- theproto instanceof Foo
+/*
+ * Calls to AddTestCase here. AddTestCase is a function that is defined
+ * in shell.js and takes three arguments:
+ * - a string representation of what is being tested
+ * - the expected result
+ * - the actual result
+ *
+ * For example, a test might look like this:
+ *
+ * var zip = /[\d]{5}$/;
+ *
+ * AddTestCase(
+ * "zip = /[\d]{5}$/; \"PO Box 12345 Boston, MA 02134\".match(zip)", // description of the test
+ * "02134", // expected result
+ * "PO Box 12345 Boston, MA 02134".match(zip) ); // actual result
+ *
+ */
+function Foo() {}
+theproto = {};
+Foo.prototype = theproto
+theproto instanceof Foo
- AddTestCase( "function Foo() {}; theproto = {}; Foo.prototype = theproto; theproto instanceof Foo",
- false,
- theproto instanceof Foo );
-
- var o = {};
- AddTestCase( "var o = {}; o instanceof o", false, o instanceof o );
+AddTestCase( "function Foo() {}; theproto = {}; Foo.prototype = theproto; theproto instanceof Foo",
+ false,
+ theproto instanceof Foo );
- var f = new Function();
+var f = new Function();
- AddTestCase( "var f = new Function(); f instanceof f", false, f instanceof f );
+AddTestCase( "var f = new Function(); f instanceof f", false, f instanceof f );
- test(); // leave this alone. this executes the test cases and
- // displays results.
+test(); // leave this alone. this executes the test cases and
+ // displays results.