summaryrefslogtreecommitdiffstats
path: root/Source/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/binding-001.js
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/binding-001.js')
-rw-r--r--Source/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/binding-001.js106
1 files changed, 106 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/binding-001.js b/Source/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/binding-001.js
new file mode 100644
index 0000000..72ff55e
--- /dev/null
+++ b/Source/JavaScriptCore/tests/mozilla/ecma_3/Exceptions/binding-001.js
@@ -0,0 +1,106 @@
+/*
+* The contents of this file are subject to the Netscape Public
+* License Version 1.1 (the "License"); you may not use this file
+* except in compliance with the License. You may obtain a copy of
+* the License at http://www.mozilla.org/NPL/
+*
+* Software distributed under the License is distributed on an
+* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed
+* or implied. See the License for the specific language governing
+* rights and limitations under the License.
+*
+* The Original Code is mozilla.org code.
+*
+* The Initial Developer of the Original Code is Netscape
+* Communications Corporation. Portions created by Netscape are
+* Copyright (C) 1998 Netscape Communications Corporation.
+* All Rights Reserved.
+*
+* Contributor(s): brendan@mozilla.org, pschwartau@netscape.com
+* Date: 2001-08-27
+*
+* SUMMARY: Testing binding of function names
+*
+* Brendan:
+*
+* "... the question is, does Rhino bind 'sum' in the global object
+* for the following test? If it does, it's buggy.
+*
+* var f = function sum(){};
+* print(sum); // should fail with 'sum is not defined' "
+*
+*/
+//-----------------------------------------------------------------------------
+var UBound = 0;
+var bug = '(none)';
+var summary = 'Testing binding of function names';
+var ERR_REF_YES = 'ReferenceError';
+var ERR_REF_NO = 'did NOT generate a ReferenceError';
+var statusitems = [];
+var actualvalues = [];
+var expectedvalues = [];
+var status = summary;
+var actual = ERR_REF_NO;
+var expect= ERR_REF_YES;
+
+
+try
+{
+ var f = function sum(){};
+ print(sum);
+}
+catch (e)
+{
+ status = 'Section 1 of test';
+ actual = e instanceof ReferenceError;
+ expect = true;
+ addThis();
+
+
+ /*
+ * This test is more literal, and one day may not be valid.
+ * Searching for literal string "ReferenceError" in e.toString()
+ */
+ status = 'Section 2 of test';
+ var match = e.toString().search(/ReferenceError/);
+ actual = (match > -1);
+ expect = true;
+ addThis();
+}
+
+
+
+//-----------------------------------------------------------------------------
+test();
+//-----------------------------------------------------------------------------
+
+
+function addThis()
+{
+ statusitems[UBound] = status;
+ actualvalues[UBound] = isReferenceError(actual);
+ expectedvalues[UBound] = isReferenceError(expect);
+ UBound++;
+}
+
+
+function test()
+{
+ enterFunc ('test');
+ printBugNumber (bug);
+ printStatus (summary);
+
+ for (var i = 0; i < UBound; i++)
+ {
+ reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
+ }
+
+ exitFunc ('test');
+}
+
+
+// converts a Boolean result into a textual result -
+function isReferenceError(bResult)
+{
+ return bResult? ERR_REF_YES : ERR_REF_NO;
+}