11package org .mozilla .javascript .optimizer ;
22
33import static org .mozilla .classfile .ClassFileWriter .ACC_PRIVATE ;
4+ import static org .mozilla .classfile .ClassFileWriter .ACC_PUBLIC ;
45import static org .mozilla .classfile .ClassFileWriter .ACC_STATIC ;
56
67import java .util .ArrayDeque ;
@@ -35,20 +36,20 @@ void generateBodyCode() {
3536 // generator has a unique prefix followed by _gen
3637 String type =
3738 "("
38- + codegen . mainClassSignature
39+ + "Lorg/mozilla/javascript/NativeFunction;"
3940 + "Lorg/mozilla/javascript/Context;"
4041 + "Lorg/mozilla/javascript/Scriptable;"
4142 + "Ljava/lang/Object;"
4243 + "Ljava/lang/Object;I)Ljava/lang/Object;" ;
4344 cfw .startMethod (
4445 codegen .getBodyMethodName (scriptOrFn ) + "_gen" ,
4546 type ,
46- (short ) (ACC_STATIC | ACC_PRIVATE ));
47+ (short ) (ACC_STATIC | ACC_PUBLIC ));
4748 } else {
4849 cfw .startMethod (
4950 codegen .getBodyMethodName (scriptOrFn ),
5051 codegen .getBodyMethodSignature (scriptOrFn ),
51- (short ) (ACC_STATIC | ACC_PRIVATE ));
52+ (short ) (ACC_STATIC | ACC_PUBLIC ));
5253 }
5354
5455 generatePrologue ();
@@ -2135,12 +2136,13 @@ private void generateArrayLiteralFactory(Node node, int count) {
21352136 localsMax = firstFreeLocal ;
21362137 cfw .startMethod (
21372138 methodName ,
2138- "(Lorg/mozilla/javascript/Context;"
2139+ "(Lorg/mozilla/javascript/NativeFunction;"
2140+ + "Lorg/mozilla/javascript/Context;"
21392141 + "Lorg/mozilla/javascript/Scriptable;"
21402142 + "Lorg/mozilla/javascript/Scriptable;"
21412143 + "[Ljava/lang/Object;"
21422144 + ")Lorg/mozilla/javascript/Scriptable;" ,
2143- ACC_PRIVATE );
2145+ ( short ) ( ACC_STATIC | ACC_PRIVATE ) );
21442146 visitArrayLiteral (node , node .getFirstChild (), true );
21452147 cfw .add (ByteCode .ARETURN );
21462148 cfw .stopMethod ((short ) (localsMax + 1 ));
@@ -2153,12 +2155,13 @@ private void generateObjectLiteralFactory(Node node, int count) {
21532155 localsMax = firstFreeLocal ;
21542156 cfw .startMethod (
21552157 methodName ,
2156- "(Lorg/mozilla/javascript/Context;"
2158+ "(Lorg/mozilla/javascript/NativeFunction;"
2159+ + "Lorg/mozilla/javascript/Context;"
21572160 + "Lorg/mozilla/javascript/Scriptable;"
21582161 + "Lorg/mozilla/javascript/Scriptable;"
21592162 + "[Ljava/lang/Object;"
21602163 + ")Lorg/mozilla/javascript/Scriptable;" ,
2161- ACC_PRIVATE );
2164+ ( short ) ( ACC_STATIC | ACC_PRIVATE ) );
21622165 visitObjectLiteral (node , node .getFirstChild (), true );
21632166 cfw .add (ByteCode .ARETURN );
21642167 cfw .stopMethod ((short ) (localsMax + 1 ));
@@ -2185,10 +2188,11 @@ private void visitArrayLiteral(Node node, Node child, boolean topLevel) {
21852188 cfw .addALoad (thisObjLocal );
21862189 cfw .addALoad (argsLocal );
21872190 cfw .addInvoke (
2188- ByteCode .INVOKEVIRTUAL ,
2191+ ByteCode .INVOKESTATIC ,
21892192 codegen .mainClassName ,
21902193 methodName ,
2191- "(Lorg/mozilla/javascript/Context;"
2194+ "(Lorg/mozilla/javascript/NativeFunction;"
2195+ + "Lorg/mozilla/javascript/Context;"
21922196 + "Lorg/mozilla/javascript/Scriptable;"
21932197 + "Lorg/mozilla/javascript/Scriptable;"
21942198 + "[Ljava/lang/Object;"
@@ -2421,10 +2425,11 @@ private void visitObjectLiteral(Node node, Node child, boolean topLevel) {
24212425 cfw .addALoad (thisObjLocal );
24222426 cfw .addALoad (argsLocal );
24232427 cfw .addInvoke (
2424- ByteCode .INVOKEVIRTUAL ,
2428+ ByteCode .INVOKESTATIC ,
24252429 codegen .mainClassName ,
24262430 methodName ,
2427- "(Lorg/mozilla/javascript/Context;"
2431+ "(Lorg/mozilla/javascript/NativeFunction;"
2432+ + "Lorg/mozilla/javascript/Context;"
24282433 + "Lorg/mozilla/javascript/Scriptable;"
24292434 + "Lorg/mozilla/javascript/Scriptable;"
24302435 + "[Ljava/lang/Object;"
0 commit comments