hasNestedFunctions,
formals, formalCount,
locals, localCount);
- *result = __qmljs_init_closure(clos, ctx);
+ __qmljs_init_closure(ctx, result, clos);
}
bool __qmljs_llvm_to_boolean(ExecutionContext *ctx, const Value *value)
MOTH_END_INSTR(LoadValue)
MOTH_BEGIN_INSTR(LoadClosure)
- VALUE(instr.result) = __qmljs_init_closure(instr.value, context);
+ __qmljs_init_closure(context, VALUEPTR(instr.result), instr.value);
MOTH_END_INSTR(LoadClosure)
MOTH_BEGIN_INSTR(LoadName)
extern "C" {
-Value __qmljs_init_closure(VM::Function *clos, ExecutionContext *ctx)
+void __qmljs_init_closure(ExecutionContext *ctx, Value *result, VM::Function *clos)
{
assert(clos);
- return Value::fromObject(ctx->engine->newScriptFunction(ctx, clos));
+ *result = Value::fromObject(ctx->engine->newScriptFunction(ctx, clos));
}
Function *__qmljs_register_function(ExecutionContext *ctx, String *name,
void __qmljs_builtin_define_getter_setter(Value object, String *name, Value getter, Value setter, ExecutionContext *ctx);
// constructors
-Value __qmljs_init_closure(VM::Function *clos, ExecutionContext *ctx);
+void __qmljs_init_closure(ExecutionContext *ctx, Value *result, VM::Function *clos);
VM::Function *__qmljs_register_function(ExecutionContext *ctx, String *name,
bool hasDirectEval,
bool usesArgumentsObject, bool isStrict,
{
VM::Function *vmFunc = vmFunction(closure->value);
assert(vmFunc);
- generateFunctionCall(target, __qmljs_init_closure, Assembler::TrustedImmPtr(vmFunc), Assembler::ContextRegister);
+ generateFunctionCall(Assembler::Void, __qmljs_init_closure, Assembler::ContextRegister, Assembler::PointerToValue(target), Assembler::TrustedImmPtr(vmFunc));
}
void InstructionSelection::getProperty(IR::Temp *base, const QString &name, IR::Temp *target)