diff options
Diffstat (limited to 'js/xpconnect/tests/chrome/test_bug596580.xhtml')
-rw-r--r-- | js/xpconnect/tests/chrome/test_bug596580.xhtml | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/js/xpconnect/tests/chrome/test_bug596580.xhtml b/js/xpconnect/tests/chrome/test_bug596580.xhtml new file mode 100644 index 0000000000..12be180412 --- /dev/null +++ b/js/xpconnect/tests/chrome/test_bug596580.xhtml @@ -0,0 +1,51 @@ +<?xml version="1.0"?> +<?xml-stylesheet href="chrome://global/skin" type="text/css"?> +<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" + type="text/css"?> +<window title="Mozilla Bug 596580" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> + <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> + + <!-- test results are displayed in the html:body --> + <body xmlns="http://www.w3.org/1999/xhtml"> + <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=596580" + target="_blank">Mozilla Bug 596580</a> + </body> + + <!-- test code goes here --> + <script type="application/javascript"><![CDATA[ + SimpleTest.waitForExplicitFinish(); + + function init() { + var f = new Function("let test = 'let is ok'; return test;"); + is(f(), 'let is ok', 'let should be ok'); + SimpleTest.finish(); + } + + (async () => { + await SpecialPowers.pushPrefEnv({"set": [["security.allow_eval_with_system_principal", + true]]}); + Test = { + include: function(p) { + var sawError = false; + try { + Cc["@mozilla.org/moz/jssubscript-loader;1"]. + getService(Ci["mozIJSSubScriptLoader"]). + loadSubScript(p); + } catch (e) { + sawError = true; + } + ok(sawError, 'should receive an error loading a not-found file'); + } + }; + + // If the include method is defined as a global function, it works. + // try to load a non existing file to produce the error + Test.include("notfound.js"); + + // If init is called directly, it works. + setTimeout('init();', 0); + })(); + + ]]></script> +</window> |