diff options
| author | Lars Knoll <lars.knoll@digia.com> | 2012-11-27 22:42:20 +0100 |
|---|---|---|
| committer | Erik Verbruggen <erik.verbruggen@digia.com> | 2012-11-28 09:56:17 +0100 |
| commit | b320af12ebd25de020537a08c39fbd6c7f6b9aad (patch) | |
| tree | 10c6cb8e36510a150eac8886f51ad13aa30cffdd /main.cpp | |
| parent | 1f2dc8856e04047648163445871b891fa898a3c1 (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.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -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; |
