Java 类jdk.nashorn.internal.runtime.FunctionScope 实例源码

项目:OpenJSharp    文件:ObjectClassGenerator.java   
/**
 * Generate the byte codes for a JavaScript scope class with fieldCount fields
 * and paramCount parameters.
 *
 * @param fieldCount Number of fields in the JavaScript scope.
 * @param paramCount Number of parameters in the JavaScript scope
 * .
 * @return Byte codes for generated class.
 */
public byte[] generate(final int fieldCount, final int paramCount) {
    final String       className    = getClassName(fieldCount, paramCount);
    final String       superName    = className(FunctionScope.class);
    final ClassEmitter classEmitter = newClassEmitter(className, superName);
    final List<String> initFields   = addFields(classEmitter, fieldCount);

    final MethodEmitter init = newInitScopeMethod(classEmitter);
    initializeToUndefined(init, className, initFields);
    init.returnVoid();
    init.end();

    final MethodEmitter initWithSpillArrays = newInitWithSpillArraysMethod(classEmitter, FunctionScope.class);
    initializeToUndefined(initWithSpillArrays, className, initFields);
    initWithSpillArrays.returnVoid();
    initWithSpillArrays.end();

    final MethodEmitter initWithArguments = newInitScopeWithArgumentsMethod(classEmitter);
    initializeToUndefined(initWithArguments, className, initFields);
    initWithArguments.returnVoid();
    initWithArguments.end();

    return toByteArray(className, classEmitter);
}
项目:openjdk-jdk10    文件:ObjectClassGenerator.java   
/**
 * Generate the byte codes for a JavaScript scope class with fieldCount fields
 * and paramCount parameters.
 *
 * @param fieldCount Number of fields in the JavaScript scope.
 * @param paramCount Number of parameters in the JavaScript scope
 * .
 * @return Byte codes for generated class.
 */
public byte[] generate(final int fieldCount, final int paramCount) {
    final String       className    = getClassName(fieldCount, paramCount, dualFields);
    final String       superName    = className(FunctionScope.class);
    final ClassEmitter classEmitter = newClassEmitter(className, superName);
    final List<String> initFields   = addFields(classEmitter, fieldCount);

    final MethodEmitter init = newInitScopeMethod(classEmitter);
    initializeToUndefined(init, className, initFields);
    init.returnVoid();
    init.end();

    final MethodEmitter initWithSpillArrays = newInitWithSpillArraysMethod(classEmitter, FunctionScope.class);
    initializeToUndefined(initWithSpillArrays, className, initFields);
    initWithSpillArrays.returnVoid();
    initWithSpillArrays.end();

    final MethodEmitter initWithArguments = newInitScopeWithArgumentsMethod(classEmitter);
    initializeToUndefined(initWithArguments, className, initFields);
    initWithArguments.returnVoid();
    initWithArguments.end();

    return toByteArray(className, classEmitter);
}
项目:openjdk9    文件:ObjectClassGenerator.java   
/**
 * Generate the byte codes for a JavaScript scope class with fieldCount fields
 * and paramCount parameters.
 *
 * @param fieldCount Number of fields in the JavaScript scope.
 * @param paramCount Number of parameters in the JavaScript scope
 * .
 * @return Byte codes for generated class.
 */
public byte[] generate(final int fieldCount, final int paramCount) {
    final String       className    = getClassName(fieldCount, paramCount, dualFields);
    final String       superName    = className(FunctionScope.class);
    final ClassEmitter classEmitter = newClassEmitter(className, superName);
    final List<String> initFields   = addFields(classEmitter, fieldCount);

    final MethodEmitter init = newInitScopeMethod(classEmitter);
    initializeToUndefined(init, className, initFields);
    init.returnVoid();
    init.end();

    final MethodEmitter initWithSpillArrays = newInitWithSpillArraysMethod(classEmitter, FunctionScope.class);
    initializeToUndefined(initWithSpillArrays, className, initFields);
    initWithSpillArrays.returnVoid();
    initWithSpillArrays.end();

    final MethodEmitter initWithArguments = newInitScopeWithArgumentsMethod(classEmitter);
    initializeToUndefined(initWithArguments, className, initFields);
    initWithArguments.returnVoid();
    initWithArguments.end();

    return toByteArray(className, classEmitter);
}
项目:kaziranga    文件:ObjectClassGenerator.java   
/**
 * Generate the byte codes for a JavaScript scope class with fieldCount fields
 * and paramCount parameters.
 *
 * @param fieldCount Number of fields in the JavaScript scope.
 * @param paramCount Number of parameters in the JavaScript scope
 * .
 * @return Byte codes for generated class.
 */
public byte[] generate(final int fieldCount, final int paramCount) {
    final String       className    = getClassName(fieldCount, paramCount, dualFields);
    final String       superName    = className(FunctionScope.class);
    final ClassEmitter classEmitter = newClassEmitter(className, superName);
    final List<String> initFields   = addFields(classEmitter, fieldCount);

    final MethodEmitter init = newInitScopeMethod(classEmitter);
    initializeToUndefined(init, className, initFields);
    init.returnVoid();
    init.end();

    final MethodEmitter initWithSpillArrays = newInitWithSpillArraysMethod(classEmitter, FunctionScope.class);
    initializeToUndefined(initWithSpillArrays, className, initFields);
    initWithSpillArrays.returnVoid();
    initWithSpillArrays.end();

    final MethodEmitter initWithArguments = newInitScopeWithArgumentsMethod(classEmitter);
    initializeToUndefined(initWithArguments, className, initFields);
    initWithArguments.returnVoid();
    initWithArguments.end();

    return toByteArray(className, classEmitter);
}
项目:lookaside_java-1.8.0-openjdk    文件:ObjectClassGenerator.java   
/**
 * Generate the byte codes for a JavaScript scope class with fieldCount fields
 * and paramCount parameters.
 *
 * @param fieldCount Number of fields in the JavaScript scope.
 * @param paramCount Number of parameters in the JavaScript scope
 * .
 * @return Byte codes for generated class.
 */
public byte[] generate(final int fieldCount, final int paramCount) {
    final String       className    = getClassName(fieldCount, paramCount, dualFields);
    final String       superName    = className(FunctionScope.class);
    final ClassEmitter classEmitter = newClassEmitter(className, superName);
    final List<String> initFields   = addFields(classEmitter, fieldCount);

    final MethodEmitter init = newInitScopeMethod(classEmitter);
    initializeToUndefined(init, className, initFields);
    init.returnVoid();
    init.end();

    final MethodEmitter initWithSpillArrays = newInitWithSpillArraysMethod(classEmitter, FunctionScope.class);
    initializeToUndefined(initWithSpillArrays, className, initFields);
    initWithSpillArrays.returnVoid();
    initWithSpillArrays.end();

    final MethodEmitter initWithArguments = newInitScopeWithArgumentsMethod(classEmitter);
    initializeToUndefined(initWithArguments, className, initFields);
    initWithArguments.returnVoid();
    initWithArguments.end();

    return toByteArray(className, classEmitter);
}
项目:jdk8u_nashorn    文件:ObjectClassGenerator.java   
/**
 * Generate the byte codes for a JavaScript scope class with fieldCount fields
 * and paramCount parameters.
 *
 * @param fieldCount Number of fields in the JavaScript scope.
 * @param paramCount Number of parameters in the JavaScript scope
 * .
 * @return Byte codes for generated class.
 */
public byte[] generate(final int fieldCount, final int paramCount) {
    final String       className    = getClassName(fieldCount, paramCount, dualFields);
    final String       superName    = className(FunctionScope.class);
    final ClassEmitter classEmitter = newClassEmitter(className, superName);
    final List<String> initFields   = addFields(classEmitter, fieldCount);

    final MethodEmitter init = newInitScopeMethod(classEmitter);
    initializeToUndefined(init, className, initFields);
    init.returnVoid();
    init.end();

    final MethodEmitter initWithSpillArrays = newInitWithSpillArraysMethod(classEmitter, FunctionScope.class);
    initializeToUndefined(initWithSpillArrays, className, initFields);
    initWithSpillArrays.returnVoid();
    initWithSpillArrays.end();

    final MethodEmitter initWithArguments = newInitScopeWithArgumentsMethod(classEmitter);
    initializeToUndefined(initWithArguments, className, initFields);
    initWithArguments.returnVoid();
    initWithArguments.end();

    return toByteArray(className, classEmitter);
}
项目:infobip-open-jdk-8    文件:ObjectClassGenerator.java   
/**
 * Generate the byte codes for a JavaScript scope class with fieldCount fields
 * and paramCount parameters.
 *
 * @param fieldCount Number of fields in the JavaScript scope.
 * @param paramCount Number of parameters in the JavaScript scope
 * .
 * @return Byte codes for generated class.
 */
public byte[] generate(final int fieldCount, final int paramCount) {
    final String       className    = getClassName(fieldCount, paramCount);
    final String       superName    = className(FunctionScope.class);
    final ClassEmitter classEmitter = newClassEmitter(className, superName);
    final List<String> initFields   = addFields(classEmitter, fieldCount);

    final MethodEmitter init = newInitScopeMethod(classEmitter);
    initializeToUndefined(init, className, initFields);
    init.returnVoid();
    init.end();

    final MethodEmitter initWithSpillArrays = newInitWithSpillArraysMethod(classEmitter, FunctionScope.class);
    initializeToUndefined(initWithSpillArrays, className, initFields);
    initWithSpillArrays.returnVoid();
    initWithSpillArrays.end();

    final MethodEmitter initWithArguments = newInitScopeWithArgumentsMethod(classEmitter);
    initializeToUndefined(initWithArguments, className, initFields);
    initWithArguments.returnVoid();
    initWithArguments.end();

    return toByteArray(className, classEmitter);
}
项目:OLD-OpenJDK8    文件:ObjectClassGenerator.java   
/**
 * Generate the byte codes for a JavaScript scope class with fieldCount fields
 * and paramCount parameters.
 *
 * @param fieldCount Number of fields in the JavaScript scope.
 * @param paramCount Number of parameters in the JavaScript scope
 * .
 * @return Byte codes for generated class.
 */
public byte[] generate(final int fieldCount, final int paramCount) {
    final String className          = getClassName(fieldCount, paramCount);
    final String superName          = className(FunctionScope.class);
    final ClassEmitter classEmitter = newClassEmitter(className, superName);
    final List<String> initFields   = addFields(classEmitter, fieldCount);

    final MethodEmitter init = newInitScopeMethod(classEmitter);
    initializeToUndefined(init, className, initFields);
    init.returnVoid();
    init.end();

    final MethodEmitter initWithArguments = newInitScopeWithArgumentsMethod(classEmitter);
    initializeToUndefined(initWithArguments, className, initFields);
    initWithArguments.returnVoid();
    initWithArguments.end();

    return toByteArray(classEmitter);
}
项目:nashorn-backport    文件:ObjectClassGenerator.java   
/**
 * Generate the byte codes for a JavaScript scope class with fieldCount fields
 * and paramCount parameters.
 *
 * @param fieldCount Number of fields in the JavaScript scope.
 * @param paramCount Number of parameters in the JavaScript scope
 * .
 * @return Byte codes for generated class.
 */
public byte[] generate(final int fieldCount, final int paramCount) {
    final String className          = getClassName(fieldCount, paramCount);
    final String superName          = className(FunctionScope.class);
    final ClassEmitter classEmitter = newClassEmitter(className, superName);
    final List<String> initFields   = addFields(classEmitter, fieldCount);

    final MethodEmitter init = newInitScopeMethod(classEmitter);
    initializeToUndefined(init, className, initFields);
    init.returnVoid();
    init.end();

    final MethodEmitter initWithArguments = newInitScopeWithArgumentsMethod(classEmitter);
    initializeToUndefined(initWithArguments, className, initFields);
    initWithArguments.returnVoid();
    initWithArguments.end();

    return toByteArray(classEmitter);
}
项目:nashorn    文件:ObjectClassGenerator.java   
/**
 * Generate the byte codes for a JavaScript scope class with fieldCount fields
 * and paramCount parameters.
 *
 * @param fieldCount Number of fields in the JavaScript scope.
 * @param paramCount Number of parameters in the JavaScript scope
 * .
 * @return Byte codes for generated class.
 */
public byte[] generate(final int fieldCount, final int paramCount) {
    final String className          = getClassName(fieldCount, paramCount);
    final String superName          = className(FunctionScope.class);
    final ClassEmitter classEmitter = newClassEmitter(className, superName);
    final List<String> initFields   = addFields(classEmitter, fieldCount);

    final MethodEmitter init = newInitScopeMethod(classEmitter);
    initializeToUndefined(init, className, initFields);
    init.returnVoid();
    init.end();

    final MethodEmitter initWithArguments = newInitScopeWithArgumentsMethod(classEmitter);
    initializeToUndefined(initWithArguments, className, initFields);
    initWithArguments.returnVoid();
    initWithArguments.end();

    return toByteArray(classEmitter);
}
项目:OpenJSharp    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class));

    return init;
}
项目:OpenJSharp    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes with arguments.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeWithArgumentsMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.load(Type.OBJECT, INIT_ARGUMENTS.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class, ScriptObject.class));

    return init;
}
项目:openjdk-jdk10    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class));

    return init;
}
项目:openjdk-jdk10    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes with arguments.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeWithArgumentsMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.load(Type.OBJECT, INIT_ARGUMENTS.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class, ScriptObject.class));

    return init;
}
项目:openjdk9    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class));

    return init;
}
项目:openjdk9    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes with arguments.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeWithArgumentsMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.load(Type.OBJECT, INIT_ARGUMENTS.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class, ScriptObject.class));

    return init;
}
项目:kaziranga    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class));

    return init;
}
项目:kaziranga    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes with arguments.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeWithArgumentsMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.load(Type.OBJECT, INIT_ARGUMENTS.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class, ScriptObject.class));

    return init;
}
项目:lookaside_java-1.8.0-openjdk    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class));

    return init;
}
项目:lookaside_java-1.8.0-openjdk    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes with arguments.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeWithArgumentsMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.load(Type.OBJECT, INIT_ARGUMENTS.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class, ScriptObject.class));

    return init;
}
项目:jdk8u_nashorn    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class));

    return init;
}
项目:jdk8u_nashorn    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes with arguments.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeWithArgumentsMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.load(Type.OBJECT, INIT_ARGUMENTS.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class, ScriptObject.class));

    return init;
}
项目:infobip-open-jdk-8    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class));

    return init;
}
项目:infobip-open-jdk-8    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes with arguments.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeWithArgumentsMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.load(Type.OBJECT, INIT_ARGUMENTS.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class, ScriptObject.class));

    return init;
}
项目:OLD-OpenJDK8    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class));

    return init;
}
项目:OLD-OpenJDK8    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes with arguments.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeWithArgumentsMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.load(Type.OBJECT, INIT_ARGUMENTS.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class, ScriptObject.class));

    return init;
}
项目:nashorn-backport    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class));

    return init;
}
项目:nashorn-backport    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes with arguments.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeWithArgumentsMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.load(Type.OBJECT, INIT_ARGUMENTS.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class, ScriptObject.class));

    return init;
}
项目:nashorn    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class));

    return init;
}
项目:nashorn    文件:ObjectClassGenerator.java   
/**
 * Allocate and initialize a new <init> method for scopes with arguments.
 * @param classEmitter  Open class emitter.
 * @return Open method emitter.
 */
private static MethodEmitter newInitScopeWithArgumentsMethod(final ClassEmitter classEmitter) {
    final MethodEmitter init = classEmitter.init(PropertyMap.class, ScriptObject.class, ScriptObject.class);
    init.begin();
    init.load(Type.OBJECT, JAVA_THIS.slot());
    init.load(Type.OBJECT, INIT_MAP.slot());
    init.load(Type.OBJECT, INIT_SCOPE.slot());
    init.load(Type.OBJECT, INIT_ARGUMENTS.slot());
    init.invoke(constructorNoLookup(FunctionScope.class, PropertyMap.class, ScriptObject.class, ScriptObject.class));

    return init;
}