aboutsummaryrefslogtreecommitdiffstats
path: root/src/v4/qv4isel_masm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/v4/qv4isel_masm.cpp')
-rw-r--r--src/v4/qv4isel_masm.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/v4/qv4isel_masm.cpp b/src/v4/qv4isel_masm.cpp
index 13a3cc111a..4e49c599ff 100644
--- a/src/v4/qv4isel_masm.cpp
+++ b/src/v4/qv4isel_masm.cpp
@@ -1078,6 +1078,19 @@ void InstructionSelection::constructActivationProperty(V4IR::Name *func, V4IR::E
{
assert(func != 0);
+ if (useFastLookups && func->global) {
+ int argc = prepareVariableArguments(args);
+ VM::String *s = identifier(*func->id);
+
+ uint index = addGlobalLookup(s);
+ generateFunctionCall(Assembler::Void, __qmljs_construct_global_lookup,
+ Assembler::ContextRegister, Assembler::PointerToValue(result),
+ Assembler::TrustedImm32(index),
+ baseAddressForCallArguments(),
+ Assembler::TrustedImm32(argc));
+ return;
+ }
+
callRuntimeMethod(result, __qmljs_construct_activation_property, func, args);
}