34
35 if (typeof fail != 'function') {
36 fail = print;
37 }
38
39 var System = java.lang.System;
40 var File = java.io.File;
41 var javahome = System.getProperty("java.home");
42 var nashornJar = new File(System.getProperty("nashorn.jar"));
43 if (! nashornJar.isAbsolute()) {
44 nashornJar = new File(".", nashornJar);
45 }
46
47 // we want to use nashorn.jar passed and not the one that comes with JRE
48 var jjsCmd = javahome + "/../bin/jjs";
49 jjsCmd = jjsCmd.toString().replace(/\//g, File.separator);
50 if (! new File(jjsCmd).isFile()) {
51 jjsCmd = javahome + "/bin/jjs";
52 jjsCmd = jjsCmd.toString().replace(/\//g, File.separator);
53 }
54 jjsCmd += " -J-Xpatch:" + nashornJar;
55
56 $ENV.PWD=System.getProperty("user.dir") // to avoid RE on Cygwin
57 $EXEC(jjsCmd, "var x = Object.create(null);\nx;\nprint('PASSED');\nexit(0)");
58
59 // $ERR has all interactions including prompts! Just check for error substring.
60 var err = $ERR.trim();
61 if (! err.contains("TypeError: Cannot get default string value")) {
62 fail("Error stream does not contain expected error message");
63 }
64
65 // should print "PASSED"
66 print($OUT.trim());
67 // exit code should be 0
68 print("exit code = " + $EXIT);
|
34
35 if (typeof fail != 'function') {
36 fail = print;
37 }
38
39 var System = java.lang.System;
40 var File = java.io.File;
41 var javahome = System.getProperty("java.home");
42 var nashornJar = new File(System.getProperty("nashorn.jar"));
43 if (! nashornJar.isAbsolute()) {
44 nashornJar = new File(".", nashornJar);
45 }
46
47 // we want to use nashorn.jar passed and not the one that comes with JRE
48 var jjsCmd = javahome + "/../bin/jjs";
49 jjsCmd = jjsCmd.toString().replace(/\//g, File.separator);
50 if (! new File(jjsCmd).isFile()) {
51 jjsCmd = javahome + "/bin/jjs";
52 jjsCmd = jjsCmd.toString().replace(/\//g, File.separator);
53 }
54 jjsCmd += " -J--patch-module=jdk.scripting.nashorn=" + nashornJar;
55
56 $ENV.PWD=System.getProperty("user.dir") // to avoid RE on Cygwin
57 $EXEC(jjsCmd, "var x = Object.create(null);\nx;\nprint('PASSED');\nexit(0)");
58
59 // $ERR has all interactions including prompts! Just check for error substring.
60 var err = $ERR.trim();
61 if (! err.contains("TypeError: Cannot get default string value")) {
62 fail("Error stream does not contain expected error message");
63 }
64
65 // should print "PASSED"
66 print($OUT.trim());
67 // exit code should be 0
68 print("exit code = " + $EXIT);
|