summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/statements/expression
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/language/statements/expression')
-rw-r--r--js/src/tests/test262/language/statements/expression/S12.4_A1.js22
-rw-r--r--js/src/tests/test262/language/statements/expression/S12.4_A2_T1.js38
-rw-r--r--js/src/tests/test262/language/statements/expression/S12.4_A2_T2.js38
-rw-r--r--js/src/tests/test262/language/statements/expression/browser.js0
-rw-r--r--js/src/tests/test262/language/statements/expression/shell.js0
5 files changed, 98 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/statements/expression/S12.4_A1.js b/js/src/tests/test262/language/statements/expression/S12.4_A1.js
new file mode 100644
index 0000000000..5e51babb1a
--- /dev/null
+++ b/js/src/tests/test262/language/statements/expression/S12.4_A1.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: |
+ An ExpressionStatement can not start with the function keyword because
+ that might make it ambiguous with a FunctionDeclaration
+es5id: 12.4_A1
+description: Checking if execution of "function(){}()" fails
+negative:
+ phase: parse
+ type: SyntaxError
+---*/
+
+$DONOTEVALUATE();
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+function(){}();
+//
+//////////////////////////////////////////////////////////////////////////////
diff --git a/js/src/tests/test262/language/statements/expression/S12.4_A2_T1.js b/js/src/tests/test262/language/statements/expression/S12.4_A2_T1.js
new file mode 100644
index 0000000000..352e4b7f02
--- /dev/null
+++ b/js/src/tests/test262/language/statements/expression/S12.4_A2_T1.js
@@ -0,0 +1,38 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: |
+ The production ExpressionStatement : [lookahead \notin {{, function}] Expression; is evaluated as follows:
+ 1. Evaluate Expression.
+ 2. Call GetValue(Result(1)).
+ 3. Return (normal, Result(2), empty)
+es5id: 12.4_A2_T1
+description: Checking by using eval "(eval("x+1+x==1"))"
+---*/
+
+var x, __evaluated;
+
+x=1;
+
+__evaluated = eval("x+1+x==1");
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (__evaluated !== false) {
+ throw new Test262Error('#1: __evaluated === false. Actual: __evaluated ==='+ __evaluated );
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+__evaluated = eval("1+1+1==1");
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__evaluated !== false) {
+ throw new Test262Error('#2: __evaluated === false. Actual: __evaluated ==='+ __evaluated );
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/language/statements/expression/S12.4_A2_T2.js b/js/src/tests/test262/language/statements/expression/S12.4_A2_T2.js
new file mode 100644
index 0000000000..0d423346ab
--- /dev/null
+++ b/js/src/tests/test262/language/statements/expression/S12.4_A2_T2.js
@@ -0,0 +1,38 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+info: |
+ The production ExpressionStatement : [lookahead \notin {{, function}] Expression; is evaluated as follows:
+ 1. Evaluate Expression.
+ 2. Call GetValue(Result(1)).
+ 3. Return (normal, Result(2), empty)
+es5id: 12.4_A2_T2
+description: Checking by using eval(eval(x), where x is any string)
+---*/
+
+var x, __evaluated;
+
+x="5+1|0===0";
+
+__evaluated = eval(x);
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (__evaluated !== 7) {
+ throw new Test262Error('#1: __evaluated === 7. Actual: __evaluated ==='+ __evaluated );
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+__evaluated = eval("2*"+x+">-1");
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__evaluated !== 11) {
+ throw new Test262Error('#2: __evaluated === 11. Actual: __evaluated ==='+ __evaluated );
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/language/statements/expression/browser.js b/js/src/tests/test262/language/statements/expression/browser.js
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/js/src/tests/test262/language/statements/expression/browser.js
diff --git a/js/src/tests/test262/language/statements/expression/shell.js b/js/src/tests/test262/language/statements/expression/shell.js
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/js/src/tests/test262/language/statements/expression/shell.js