diff options
author | Liang Qi <liang.qi@qt.io> | 2016-12-14 08:54:22 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-12-14 08:54:57 +0100 |
commit | 172260ebef6b830768468317deee5e05743f92f3 (patch) | |
tree | f5bf99ecfecddcf0d07c5017b27d3e8f14d41176 /tools/qmljs | |
parent | 9fbc5aa8866bbc19cc0db9f5f247276f36f3e283 (diff) | |
parent | 8bf579d8d4feb13ca8651e98dd762b28483abe9e (diff) |
Merge remote-tracking branch 'origin/5.8' into dev
Change-Id: I905dcd29377bf1b2e0ee086823b54277d18e78dd
Diffstat (limited to 'tools/qmljs')
-rw-r--r-- | tools/qmljs/qmljs.cpp | 57 |
1 files changed, 2 insertions, 55 deletions
diff --git a/tools/qmljs/qmljs.cpp b/tools/qmljs/qmljs.cpp index 850b9a9a0a..54e1b6cea8 100644 --- a/tools/qmljs/qmljs.cpp +++ b/tools/qmljs/qmljs.cpp @@ -42,6 +42,7 @@ #include "private/qv4context_p.h" #include "private/qv4script_p.h" #include "private/qv4string_p.h" +#include "private/qqmlbuiltinfunctions_p.h" #ifdef V4_ENABLE_JIT # include "private/qv4isel_masm_p.h" @@ -60,57 +61,6 @@ QT_REQUIRE_CONFIG(qml_interpreter); #include <iostream> -namespace builtins { - -using namespace QV4; - -struct Print: FunctionObject -{ - struct Data : Heap::FunctionObject { - void init(ExecutionContext *scope) - { - Heap::FunctionObject::init(scope, QStringLiteral("print")); - } - }; - V4_OBJECT(FunctionObject) - - static void call(const Managed *, Scope &scope, CallData *callData) - { - for (int i = 0; i < callData->argc; ++i) { - QString s = callData->args[i].toQStringNoThrow(); - if (i) - std::cout << ' '; - std::cout << qPrintable(s); - } - std::cout << std::endl; - scope.result = Encode::undefined(); - } -}; - -DEFINE_OBJECT_VTABLE(Print); - -struct GC: public FunctionObject -{ - struct Data : Heap::FunctionObject { - void init(ExecutionContext *scope) - { - Heap::FunctionObject::init(scope, QStringLiteral("gc")); - } - - }; - V4_OBJECT(FunctionObject) - - static void call(const Managed *m, Scope &scope, CallData *) - { - static_cast<const GC *>(m)->engine()->memoryManager->runGC(); - scope.result = Encode::undefined(); - } -}; - -DEFINE_OBJECT_VTABLE(GC); - -} // builtins - static void showException(QV4::ExecutionContext *ctx, const QV4::Value &exception, const QV4::StackTrace &trace) { QV4::Scope scope(ctx); @@ -200,10 +150,7 @@ int main(int argc, char *argv[]) QV4::Scope scope(&vm); QV4::ScopedContext ctx(scope, vm.rootContext()); - QV4::ScopedObject print(scope, vm.memoryManager->allocObject<builtins::Print>(vm.rootContext())); - vm.globalObject->put(QV4::ScopedString(scope, vm.newIdentifier(QStringLiteral("print"))).getPointer(), print); - QV4::ScopedObject gc(scope, vm.memoryManager->allocObject<builtins::GC>(ctx)); - vm.globalObject->put(QV4::ScopedString(scope, vm.newIdentifier(QStringLiteral("gc"))).getPointer(), gc); + QV4::GlobalExtensions::init(vm.globalObject, QJSEngine::ConsoleExtension | QJSEngine::GarbageCollectionExtension); for (const QString &fn : qAsConst(args)) { QFile file(fn); |