From ec90446de8a17bf43d4b511dc5116003fb05c72b Mon Sep 17 00:00:00 2001 From: "rogerl%netscape.com" Date: Wed, 3 Nov 1999 23:59:35 +0000 Subject: [PATCH] Replaced Closure object with FunctionObject clone git-svn-id: svn://10.0.0.236/trunk@52756 18797224-902f-48f8-a5cc-f745e15eee43 --- .../mozilla/javascript/optimizer/Codegen.java | 21 +++++++------------ .../mozilla/javascript/optimizer/Codegen.java | 21 +++++++------------ 2 files changed, 14 insertions(+), 28 deletions(-) diff --git a/mozilla/js/rhino/org/mozilla/javascript/optimizer/Codegen.java b/mozilla/js/rhino/org/mozilla/javascript/optimizer/Codegen.java index 72433c12ebc..c2a205bfb06 100644 --- a/mozilla/js/rhino/org/mozilla/javascript/optimizer/Codegen.java +++ b/mozilla/js/rhino/org/mozilla/javascript/optimizer/Codegen.java @@ -1878,16 +1878,7 @@ public class Codegen extends Interpreter { } private void visitFunction(Node node) { - addByteCode(ByteCode.NEW, "org/mozilla/javascript/NativeClosure"); - addByteCode(ByteCode.DUP); - - // Context argument to constructor - aload(contextLocal); - - // Scope argument to constructor aload(variableObjectLocal); - - // Function argument to constructor Node fn = (Node) node.getProp(Node.FUNCTION_PROP); Short index = (Short) fn.getProp(Node.FUNCTION_PROP); aload(funObjLocal); @@ -1895,12 +1886,14 @@ public class Codegen extends Interpreter { "nestedFunctions", "[Lorg/mozilla/javascript/NativeFunction;"); push(index.shortValue()); addByteCode(ByteCode.AALOAD); + addVirtualInvoke("java/lang/Object", "getClass", "()", "Ljava/lang/Class;"); + aload(contextLocal); + addScriptRuntimeInvoke("createFunctionObject", + "(Lorg/mozilla/javascript/Scriptable;"+ + "Ljava/lang/Class;" + + "Lorg/mozilla/javascript/Context;)", + "Lorg/mozilla/javascript/NativeFunction;"); - addSpecialInvoke("org/mozilla/javascript/NativeClosure", - "", - "(Lorg/mozilla/javascript/Context;" + - "Lorg/mozilla/javascript/Scriptable;" + - "Lorg/mozilla/javascript/NativeFunction;)", "V"); } private void visitTarget(Node node) { diff --git a/mozilla/js/rhino/src/org/mozilla/javascript/optimizer/Codegen.java b/mozilla/js/rhino/src/org/mozilla/javascript/optimizer/Codegen.java index 72433c12ebc..c2a205bfb06 100644 --- a/mozilla/js/rhino/src/org/mozilla/javascript/optimizer/Codegen.java +++ b/mozilla/js/rhino/src/org/mozilla/javascript/optimizer/Codegen.java @@ -1878,16 +1878,7 @@ public class Codegen extends Interpreter { } private void visitFunction(Node node) { - addByteCode(ByteCode.NEW, "org/mozilla/javascript/NativeClosure"); - addByteCode(ByteCode.DUP); - - // Context argument to constructor - aload(contextLocal); - - // Scope argument to constructor aload(variableObjectLocal); - - // Function argument to constructor Node fn = (Node) node.getProp(Node.FUNCTION_PROP); Short index = (Short) fn.getProp(Node.FUNCTION_PROP); aload(funObjLocal); @@ -1895,12 +1886,14 @@ public class Codegen extends Interpreter { "nestedFunctions", "[Lorg/mozilla/javascript/NativeFunction;"); push(index.shortValue()); addByteCode(ByteCode.AALOAD); + addVirtualInvoke("java/lang/Object", "getClass", "()", "Ljava/lang/Class;"); + aload(contextLocal); + addScriptRuntimeInvoke("createFunctionObject", + "(Lorg/mozilla/javascript/Scriptable;"+ + "Ljava/lang/Class;" + + "Lorg/mozilla/javascript/Context;)", + "Lorg/mozilla/javascript/NativeFunction;"); - addSpecialInvoke("org/mozilla/javascript/NativeClosure", - "", - "(Lorg/mozilla/javascript/Context;" + - "Lorg/mozilla/javascript/Scriptable;" + - "Lorg/mozilla/javascript/NativeFunction;)", "V"); } private void visitTarget(Node node) {