aboutsummaryrefslogtreecommitdiffstats
path: root/moth
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2012-11-29 22:37:25 +0100
committerErik Verbruggen <erik.verbruggen@digia.com>2012-11-30 12:28:38 +0100
commitf26d5c36cff33cc8a968c87a69e9dddbb4278855 (patch)
tree185ef14f30ed409cb74ff8cf11ad8223597cb5ad /moth
parentf00cf7cfae716f5e5af2d0952c3a822744977811 (diff)
Get rid of variableEnvironment
Found out that the variableEnv is only required for two use cases: To expose the exception in the catch statement, and to create temporary environments for the with() statment. Both can be better handled differently and don't require the overhead of two environments. Change-Id: I149e1fd7bdfc3267544b141b6f94e46e42cf641b Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'moth')
-rw-r--r--moth/qv4vme_moth.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/moth/qv4vme_moth.cpp b/moth/qv4vme_moth.cpp
index 92e7c7c206..e71733d2a1 100644
--- a/moth/qv4vme_moth.cpp
+++ b/moth/qv4vme_moth.cpp
@@ -53,7 +53,7 @@ using namespace QQmlJS::Moth;
static inline VM::Value *tempValue(QQmlJS::VM::ExecutionContext *context, QVector<VM::Value> &stack, int index)
{
- VM::DeclarativeEnvironment *varEnv = context->variableEnvironment;
+ VM::DeclarativeEnvironment *varEnv = context->lexicalEnvironment;
#ifdef DO_TRACE_INSTR
const char *kind;
@@ -231,21 +231,21 @@ VM::Value VME::operator()(QQmlJS::VM::ExecutionContext *context, const uchar *co
}
}
#endif // DO_TRACE_INSTR
- quint32 argStart = instr.args - context->variableEnvironment->varCount;
+ quint32 argStart = instr.args - context->lexicalEnvironment->varCount;
TRACE(Call, "value index = %d, argStart = %d, argc = %d, result temp index = %d", instr.destIndex, argStart, instr.argc, instr.targetTempIndex);
VM::Value *args = stack.data() + argStart;
TEMP(instr.targetTempIndex) = __qmljs_call_value(context, VM::Value::undefinedValue(), TEMP(instr.destIndex), args, instr.argc);
MOTH_END_INSTR(CallValue)
MOTH_BEGIN_INSTR(CallProperty)
- quint32 argStart = instr.args - context->variableEnvironment->varCount;
+ quint32 argStart = instr.args - context->lexicalEnvironment->varCount;
VM::Value *args = stack.data() + argStart;
VM::Value base = TEMP(instr.baseTemp);
TEMP(instr.targetTempIndex) = __qmljs_call_property(context, base, instr.name, args, instr.argc);
MOTH_END_INSTR(CallProperty)
MOTH_BEGIN_INSTR(CallBuiltin)
- quint32 argStart = instr.args - context->variableEnvironment->varCount;
+ quint32 argStart = instr.args - context->lexicalEnvironment->varCount;
VM::Value *args = stack.data() + argStart;
void *buf;
switch (instr.builtin) {
@@ -325,20 +325,20 @@ VM::Value VME::operator()(QQmlJS::VM::ExecutionContext *context, const uchar *co
MOTH_END_INSTR(CallBuiltinDeleteValue)
MOTH_BEGIN_INSTR(CreateValue)
- quint32 argStart = instr.args - context->variableEnvironment->varCount;
+ quint32 argStart = instr.args - context->lexicalEnvironment->varCount;
VM::Value *args = stack.data() + argStart;
TEMP(instr.targetTempIndex) = __qmljs_construct_value(context, TEMP(instr.func), args, instr.argc);
MOTH_END_INSTR(CreateValue)
MOTH_BEGIN_INSTR(CreateProperty)
- quint32 argStart = instr.args - context->variableEnvironment->varCount;
+ quint32 argStart = instr.args - context->lexicalEnvironment->varCount;
VM::Value *args = stack.data() + argStart;
TEMP(instr.targetTempIndex) = __qmljs_construct_property(context, TEMP(instr.base), instr.name, args, instr.argc);
MOTH_END_INSTR(CreateProperty)
MOTH_BEGIN_INSTR(CreateActivationProperty)
TRACE(inline, "property name = %s, argc = %d", instr.name->toQString().toUtf8().constData(), instr.argc);
- quint32 argStart = instr.args - context->variableEnvironment->varCount;
+ quint32 argStart = instr.args - context->lexicalEnvironment->varCount;
VM::Value *args = stack.data() + argStart;
TEMP(instr.targetTempIndex) = __qmljs_construct_activation_property(context, instr.name, args, instr.argc);
MOTH_END_INSTR(CreateActivationProperty)