summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/extensions/uneval/strict-function-toSource.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/non262/extensions/uneval/strict-function-toSource.js')
-rw-r--r--js/src/tests/non262/extensions/uneval/strict-function-toSource.js19
1 files changed, 19 insertions, 0 deletions
diff --git a/js/src/tests/non262/extensions/uneval/strict-function-toSource.js b/js/src/tests/non262/extensions/uneval/strict-function-toSource.js
new file mode 100644
index 0000000000..383da34df6
--- /dev/null
+++ b/js/src/tests/non262/extensions/uneval/strict-function-toSource.js
@@ -0,0 +1,19 @@
+// |reftest| skip-if(!this.uneval)
+
+/*
+ * Bug 800407 - Functions defined with Function construcor
+ * do have strict mode when JSOPTION_STRICT_MODE is on.
+ */
+
+options("strict_mode");
+function testRunOptionStrictMode(str, arg, result) {
+ var strict_inner = new Function('return typeof this == "undefined";');
+ return strict_inner;
+}
+let inner = testRunOptionStrictMode();
+assertEq(inner(), true);
+assertEq(eval(uneval(inner))(), true);
+
+assertEq((new Function('x', 'return x*2;')).toSource().includes('"use strict"'), false);
+
+reportCompare(true, true);