diff options
author | Christian Kamm <[email protected]> | 2010-02-03 10:59:52 +0100 |
---|---|---|
committer | Christian Kamm <[email protected]> | 2010-02-03 10:59:52 +0100 |
commit | 49c43aaab152ba4e885f53e2b38720c3704a135d (patch) | |
tree | 91aa2acba74579f7e088a28beaf260ea3efe9606 /src/libs/qmljs/qmljscheck.cpp | |
parent | ba18e7003421562b698d064998b8eecf1f92c4a1 (diff) |
Get rid of Environment, introduce external ScopeChain in Link.
Done-with: Roberto
Diffstat (limited to 'src/libs/qmljs/qmljscheck.cpp')
-rw-r--r-- | src/libs/qmljs/qmljscheck.cpp | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp index 7532f48de37..3d24f79054d 100644 --- a/src/libs/qmljs/qmljscheck.cpp +++ b/src/libs/qmljs/qmljscheck.cpp @@ -29,6 +29,7 @@ #include "qmljscheck.h" #include "qmljsinterpreter.h" +#include "qmljslink.h" #include "parser/qmljsparser_p.h" #include "parser/qmljsast_p.h" #include <QtCore/QDebug> @@ -36,10 +37,10 @@ using namespace QmlJS; using namespace QmlJS::Interpreter; -Check::Check(Interpreter::Engine *engine, Interpreter::Context *context) - : _engine(engine), - _context(context), - _scope(engine->globalObject()), +Check::Check(Link *link) + : _engine(link->engine()), + _link(link), + _scope(_engine->globalObject()), _result(0) { } @@ -48,12 +49,9 @@ Check::~Check() { } -const Interpreter::Value *Check::operator()(AST::Node *ast, const Interpreter::ObjectValue *scope) +const Interpreter::Value *Check::operator()(AST::Node *ast) { - const Interpreter::ObjectValue *previousScope = switchScope(scope); - const Interpreter::Value *result = check(ast); - (void) switchScope(previousScope); - return result; + return check(ast); } const Interpreter::Value *Check::check(AST::Node *ast) @@ -68,7 +66,7 @@ const Interpreter::Value *Check::check(AST::Node *ast) const Value *result = switchResult(previousResult); if (const Reference *ref = value_cast<const Reference *>(result)) - result = ref->value(_context); + result = ref->value(_link->context()); if (! result) result = _engine->undefinedValue(); @@ -167,7 +165,7 @@ bool Check::visit(AST::UiQualifiedId *ast) if (! ast->name) return false; - const Value *value = _scope->lookup(ast->name->asString()); + const Value *value = _link->lookup(ast->name->asString()); if (! ast->next) { _result = value; @@ -215,7 +213,7 @@ bool Check::visit(AST::IdentifierExpression *ast) if (! ast->name) return false; - _result = _scope->lookup(ast->name->asString()); + _result = _link->lookup(ast->name->asString()); return false; } |