test/script/trusted/JDK-8006529.js

changeset 430
2c007a8bb0e7
parent 428
798e3aa19718
child 464
a58a07a00122
equal deleted inserted replaced
429:58614b556a0d 430:2c007a8bb0e7
37 * Compiler or FunctionNode class, you may have to revisit this script. 37 * Compiler or FunctionNode class, you may have to revisit this script.
38 * We cannot use direct Java class (via dynalink bean linker) to Compiler 38 * We cannot use direct Java class (via dynalink bean linker) to Compiler
39 * and FunctionNode because of package-access check and so reflective calls. 39 * and FunctionNode because of package-access check and so reflective calls.
40 */ 40 */
41 41
42 var Parser = Java.type("jdk.nashorn.internal.parser.Parser") 42 var Parser = Java.type("jdk.nashorn.internal.parser.Parser")
43 var Compiler = Java.type("jdk.nashorn.internal.codegen.Compiler") 43 var Compiler = Java.type("jdk.nashorn.internal.codegen.Compiler")
44 var Context = Java.type("jdk.nashorn.internal.runtime.Context") 44 var Context = Java.type("jdk.nashorn.internal.runtime.Context")
45 var ScriptEnvironment = Java.type("jdk.nashorn.internal.runtime.ScriptEnvironment") 45 var ScriptEnvironment = Java.type("jdk.nashorn.internal.runtime.ScriptEnvironment")
46 var Source = Java.type("jdk.nashorn.internal.runtime.Source") 46 var Source = Java.type("jdk.nashorn.internal.runtime.Source")
47 var FunctionNode = Java.type("jdk.nashorn.internal.ir.FunctionNode") 47 var FunctionNode = Java.type("jdk.nashorn.internal.ir.FunctionNode")
48 var Block = Java.type("jdk.nashorn.internal.ir.Block") 48 var Block = Java.type("jdk.nashorn.internal.ir.Block")
49 var VarNode = Java.type("jdk.nashorn.internal.ir.VarNode") 49 var VarNode = Java.type("jdk.nashorn.internal.ir.VarNode")
50 var ExecuteNode = Java.type("jdk.nashorn.internal.ir.ExecuteNode") 50 var ExpressionStatement = Java.type("jdk.nashorn.internal.ir.ExpressionStatement")
51 var UnaryNode = Java.type("jdk.nashorn.internal.ir.UnaryNode") 51 var UnaryNode = Java.type("jdk.nashorn.internal.ir.UnaryNode")
52 var BinaryNode = Java.type("jdk.nashorn.internal.ir.BinaryNode") 52 var BinaryNode = Java.type("jdk.nashorn.internal.ir.BinaryNode")
53 var ThrowErrorManager = Java.type("jdk.nashorn.internal.runtime.Context$ThrowErrorManager") 53 var ThrowErrorManager = Java.type("jdk.nashorn.internal.runtime.Context$ThrowErrorManager")
54 var Debug = Java.type("jdk.nashorn.internal.runtime.Debug") 54 var Debug = Java.type("jdk.nashorn.internal.runtime.Debug")
55 55
56 var parseMethod = Parser.class.getMethod("parse"); 56 var parseMethod = Parser.class.getMethod("parse");
57 var compileMethod = Compiler.class.getMethod("compile", FunctionNode.class); 57 var compileMethod = Compiler.class.getMethod("compile", FunctionNode.class);
58 var getBodyMethod = FunctionNode.class.getMethod("getBody"); 58 var getBodyMethod = FunctionNode.class.getMethod("getBody");
59 var getStatementsMethod = Block.class.getMethod("getStatements"); 59 var getStatementsMethod = Block.class.getMethod("getStatements");
60 var getInitMethod = VarNode.class.getMethod("getInit"); 60 var getInitMethod = VarNode.class.getMethod("getInit");
61 var getExpressionMethod = ExecuteNode.class.getMethod("getExpression") 61 var getExpressionMethod = ExpressionStatement.class.getMethod("getExpression")
62 var rhsMethod = UnaryNode.class.getMethod("rhs") 62 var rhsMethod = UnaryNode.class.getMethod("rhs")
63 var lhsMethod = BinaryNode.class.getMethod("lhs") 63 var lhsMethod = BinaryNode.class.getMethod("lhs")
64 var binaryRhsMethod = BinaryNode.class.getMethod("rhs") 64 var binaryRhsMethod = BinaryNode.class.getMethod("rhs")
65 var debugIdMethod = Debug.class.getMethod("id", java.lang.Object.class) 65 var debugIdMethod = Debug.class.getMethod("id", java.lang.Object.class)
66 66
99 return findFunction(getInitMethod.invoke(node)) 99 return findFunction(getInitMethod.invoke(node))
100 } else if(node instanceof UnaryNode) { 100 } else if(node instanceof UnaryNode) {
101 return findFunction(rhsMethod.invoke(node)) 101 return findFunction(rhsMethod.invoke(node))
102 } else if(node instanceof BinaryNode) { 102 } else if(node instanceof BinaryNode) {
103 return findFunction(lhsMethod.invoke(node)) || findFunction(binaryRhsMethod.invoke(node)) 103 return findFunction(lhsMethod.invoke(node)) || findFunction(binaryRhsMethod.invoke(node))
104 } else if(node instanceof ExecuteNode) { 104 } else if(node instanceof ExpressionStatement) {
105 return findFunction(getExpressionMethod.invoke(node)) 105 return findFunction(getExpressionMethod.invoke(node))
106 } else if(node instanceof FunctionNode) { 106 } else if(node instanceof FunctionNode) {
107 return node 107 return node
108 } 108 }
109 } 109 }

mercurial