aboutsummaryrefslogtreecommitdiffstats
path: root/main.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2012-11-27 22:42:20 +0100
committerErik Verbruggen <erik.verbruggen@digia.com>2012-11-28 09:56:17 +0100
commitb320af12ebd25de020537a08c39fbd6c7f6b9aad (patch)
tree10c6cb8e36510a150eac8886f51ad13aa30cffdd /main.cpp
parent1f2dc8856e04047648163445871b891fa898a3c1 (diff)
Implement the first parts of strict mode.
Tested with eval() which now obeys strict mode semantics. Change-Id: Ib3c7f31047e43c1ef0fa74261f23ec4f2ea4244f Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/main.cpp b/main.cpp
index a228c9baa2..bd1bcea89e 100644
--- a/main.cpp
+++ b/main.cpp
@@ -319,7 +319,11 @@ int main(int argc, char *argv[])
return EXIT_FAILURE;
}
- QQmlJS::VM::Value result = QQmlJS::VM::EvalFunction::evaluate(vm.rootContext, fn, code, QQmlJS::Codegen::GlobalCode);
+ QQmlJS::IR::Function *f = QQmlJS::VM::EvalFunction::parseSource(vm.rootContext, fn, code, QQmlJS::Codegen::GlobalCode);
+ if (!f)
+ continue;
+ ctx->lexicalEnvironment->strictMode = f->isStrict;
+ QQmlJS::VM::Value result = f->code(ctx, f->codeData);
if (!result.isUndefined()) {
if (! qgetenv("SHOW_EXIT_VALUE").isEmpty())
std::cout << "exit value: " << qPrintable(result.toString(ctx)->toQString()) << std::endl;