summaryrefslogtreecommitdiffstats
path: root/js/src/tests/js1_4/Regress
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/js1_4/Regress')
-rw-r--r--js/src/tests/js1_4/Regress/browser.js0
-rw-r--r--js/src/tests/js1_4/Regress/function-001.js62
-rw-r--r--js/src/tests/js1_4/Regress/function-002.js107
-rw-r--r--js/src/tests/js1_4/Regress/function-003.js60
-rw-r--r--js/src/tests/js1_4/Regress/function-004-n.js37
-rw-r--r--js/src/tests/js1_4/Regress/regress-7224.js57
-rw-r--r--js/src/tests/js1_4/Regress/shell.js0
-rw-r--r--js/src/tests/js1_4/Regress/toString-001-n.js37
8 files changed, 360 insertions, 0 deletions
diff --git a/js/src/tests/js1_4/Regress/browser.js b/js/src/tests/js1_4/Regress/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/js1_4/Regress/browser.js
diff --git a/js/src/tests/js1_4/Regress/function-001.js b/js/src/tests/js1_4/Regress/function-001.js
new file mode 100644
index 000000000..43669e9c1
--- /dev/null
+++ b/js/src/tests/js1_4/Regress/function-001.js
@@ -0,0 +1,62 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ * File Name: function-001.js
+ * Description:
+ *
+ * http://scopus.mcom.com/bugsplat/show_bug.cgi?id=325843
+ * js> function f(a){var a,b;}
+ *
+ * causes an an assert on a null 'sprop' in the 'Variables' function in
+ * jsparse.c This will crash non-debug build.
+ *
+ * Author: christine@netscape.com
+ * Date: 11 August 1998
+ */
+var SECTION = "function-001.js";
+var VERSION = "JS1_4";
+var TITLE = "Regression test case for 325843";
+var BUGNUMBER="3258435";
+startTest();
+
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+eval("function f1 (a){ var a,b; }");
+
+function f2( a ) { var a, b; };
+
+new TestCase(
+ SECTION,
+ "eval(\"function f1 (a){ var a,b; }\"); "+
+ "function f2( a ) { var a, b; }; typeof f1",
+ "function",
+ typeof f1 );
+
+// force a function decompilation
+
+new TestCase(
+ SECTION,
+ "typeof f1.toString()",
+ "string",
+ typeof f1.toString() );
+
+new TestCase(
+ SECTION,
+ "typeof f2",
+ "function",
+ typeof f2 );
+
+// force a function decompilation
+
+new TestCase(
+ SECTION,
+ "typeof f2.toString()",
+ "string",
+ typeof f2.toString() );
+
+test();
+
diff --git a/js/src/tests/js1_4/Regress/function-002.js b/js/src/tests/js1_4/Regress/function-002.js
new file mode 100644
index 000000000..c1596db7c
--- /dev/null
+++ b/js/src/tests/js1_4/Regress/function-002.js
@@ -0,0 +1,107 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ * File Name: function-002.js
+ * Description:
+ *
+ * http://scopus.mcom.com/bugsplat/show_bug.cgi?id=330462
+ * js> function f(a){var a,b;}
+ *
+ * causes an an assert on a null 'sprop' in the 'Variables' function in
+ * jsparse.c This will crash non-debug build.
+ *
+ * Author: christine@netscape.com
+ * Date: 11 August 1998
+ * REVISED: 04 February 2001
+ * (changed the comma expressions from trivial to non-trivial)
+ * Author: pschwartau@netscape.com
+ *
+ * Brendan: "The test seemed to require something that ECMA does not
+ * guarantee, and that JS1.4 didn't either. For example, given
+ *
+ * dec2 = "function f2(){1,2}";
+ *
+ * the engine is free to decompile a function object compiled from this source,
+ * via Function.prototype.toString(), into some other string that compiles to
+ * an equivalent function. The engine now eliminates the useless comma expression
+ * 1,2, giving function f2(){}. This should be legal by the testsuite's lights."
+ *
+ */
+var SECTION = "function-002.js";
+var VERSION = "JS1_4";
+var TITLE = "Regression test case for 325843";
+var BUGNUMBER="330462";
+
+startTest();
+
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+dec1 = "function f1(x,y){++x, --y}";
+dec2 = "function f2(){var y; f1(1,2); y=new Date(); print(y.toString())}";
+
+eval(dec1);
+eval(dec2);
+
+new TestCase(
+ SECTION,
+ "typeof f1",
+ "function",
+ typeof f1 );
+
+
+// force a function decompilation
+new TestCase(
+ SECTION,
+ "f1.toString() == dec1",
+ true,
+ StripSpaces(f1.toString()) == StripSpaces(dec1));
+
+new TestCase(
+ SECTION,
+ "typeof f2",
+ "function",
+ typeof f2 );
+
+// force a function decompilation
+
+new TestCase(
+ SECTION,
+ "f2.toString() == dec2",
+ true,
+ StripSpaces(f2.toString().replace(/new Date\(\)/g, 'new Date')) ==
+ StripSpaces(dec2.replace(/new Date\(\)/g, 'new Date')));
+
+test();
+
+function StripSpaces( s ) {
+ var strippedString = "";
+ for ( var currentChar = 0; currentChar < s.length; currentChar++ ) {
+ if (!IsWhiteSpace(s.charAt(currentChar))) {
+ strippedString += s.charAt(currentChar);
+ }
+ }
+ return strippedString;
+}
+
+function IsWhiteSpace( string ) {
+ var cc = string.charCodeAt(0);
+
+ switch (cc) {
+ case (0x0009):
+ case (0x000B):
+ case (0x000C):
+ case (0x0020):
+ case (0x000A):
+ case (0x000D):
+ case ( 59 ): // let's strip out semicolons, too
+ return true;
+ break;
+ default:
+ return false;
+ }
+}
+
diff --git a/js/src/tests/js1_4/Regress/function-003.js b/js/src/tests/js1_4/Regress/function-003.js
new file mode 100644
index 000000000..157e926db
--- /dev/null
+++ b/js/src/tests/js1_4/Regress/function-003.js
@@ -0,0 +1,60 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ * File Name: function-003.js
+ * Description:
+ *
+ * http://scopus.mcom.com/bugsplat/show_bug.cgi?id=104766
+ *
+ * Author: christine@netscape.com
+ * Date: 11 August 1998
+ */
+var SECTION = "toString-001.js";
+var VERSION = "JS1_4";
+var TITLE = "Regression test case for 104766";
+var BUGNUMBER="310514";
+
+startTest();
+
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+new TestCase(
+ SECTION,
+ "StripSpaces(Array.prototype.concat.toString()).substring(0,17)",
+ "functionconcat(){",
+ StripSpaces(Array.prototype.concat.toString()).substring(0,17));
+
+test();
+
+function StripSpaces( s ) {
+ for ( var currentChar = 0, strippedString="";
+ currentChar < s.length; currentChar++ )
+ {
+ if (!IsWhiteSpace(s.charAt(currentChar))) {
+ strippedString += s.charAt(currentChar);
+ }
+ }
+ return strippedString;
+}
+
+function IsWhiteSpace( string ) {
+ var cc = string.charCodeAt(0);
+ switch (cc) {
+ case (0x0009):
+ case (0x000B):
+ case (0x000C):
+ case (0x0020):
+ case (0x000A):
+ case (0x000D):
+ case ( 59 ): // let's strip out semicolons, too
+ return true;
+ break;
+ default:
+ return false;
+ }
+}
+
diff --git a/js/src/tests/js1_4/Regress/function-004-n.js b/js/src/tests/js1_4/Regress/function-004-n.js
new file mode 100644
index 000000000..36d3dbfea
--- /dev/null
+++ b/js/src/tests/js1_4/Regress/function-004-n.js
@@ -0,0 +1,37 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ * File Name: function-004.js
+ * Description:
+ *
+ * http://scopus.mcom.com/bugsplat/show_bug.cgi?id=310502
+ *
+ * Author: christine@netscape.com
+ * Date: 11 August 1998
+ */
+var SECTION = "funtion-004-n.js";
+var VERSION = "JS1_4";
+var TITLE = "Regression test case for 310502";
+var BUGNUMBER="310502";
+
+startTest();
+
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var o = {};
+o.call = Function.prototype.call;
+
+DESCRIPTION = "var o = {}; o.call = Function.prototype.call; o.call()";
+EXPECTED = "error";
+
+new TestCase(
+ SECTION,
+ "var o = {}; o.call = Function.prototype.call; o.call()",
+ "error",
+ o.call() );
+
+test();
diff --git a/js/src/tests/js1_4/Regress/regress-7224.js b/js/src/tests/js1_4/Regress/regress-7224.js
new file mode 100644
index 000000000..fe248f38d
--- /dev/null
+++ b/js/src/tests/js1_4/Regress/regress-7224.js
@@ -0,0 +1,57 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ * File Name: regress-7224.js
+ * Reference: js1_2
+ * Description: Remove support for the arg
+ * Author: ** replace with your e-mail address **
+ */
+
+var SECTION = "regress"; // provide a document reference (ie, ECMA section)
+var VERSION = "JS1_4"; // Version of JavaScript or ECMA
+var TITLE = "Regression test for bugzilla #7224"; // Provide ECMA section title or a description
+var BUGNUMBER = "http://bugzilla.mozilla.org/show_bug.cgi?id=7224"; // Provide URL to bugsplat or bugzilla report
+
+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
+ *
+ */
+
+var f = new Function( "return arguments.caller" );
+var o = {};
+
+o.foo = f;
+o.foo("a", "b", "c");
+
+
+AddTestCase(
+ "var f = new Function( 'return arguments.caller' ); f()",
+ undefined,
+ f() );
+
+AddTestCase(
+ "var o = {}; o.foo = f; o.foo('a')",
+ undefined,
+ o.foo('a') );
+
+test(); // leave this alone. this executes the test cases and
+// displays results.
diff --git a/js/src/tests/js1_4/Regress/shell.js b/js/src/tests/js1_4/Regress/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/js1_4/Regress/shell.js
diff --git a/js/src/tests/js1_4/Regress/toString-001-n.js b/js/src/tests/js1_4/Regress/toString-001-n.js
new file mode 100644
index 000000000..45abb1f3f
--- /dev/null
+++ b/js/src/tests/js1_4/Regress/toString-001-n.js
@@ -0,0 +1,37 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+/**
+ * File Name: toString-001-n.js
+ * Description:
+ *
+ * Function.prototype.toString is not generic.
+ *
+ * Author: christine@netscape.com
+ * Date: 11 August 1998
+ */
+var SECTION = "toString-001.js";
+var VERSION = "JS1_4";
+var TITLE = "Regression test case for 310514";
+var BUGNUMBER="310514";
+
+startTest();
+
+writeHeaderToLog( SECTION + " "+ TITLE);
+
+var o = {};
+o.toString = Function.prototype.toString;
+
+DESCRIPTION = "var o = {}; o.toString = Function.prototype.toString; o.toString();";
+EXPECTED = "error";
+
+new TestCase(
+ SECTION,
+ "var o = {}; o.toString = Function.prototype.toString; o.toString();",
+ "error",
+ o.toString() );
+
+test();