Browse Source

Merge pull request #192 from AtomicGameEngine/RED-EDITOR-MAIN

Require editor's main.js instead of evaling it
JoshEngebretson 10 years ago
parent
commit
047b1b5100

+ 11 - 2
Script/AtomicEditor/main.ts

@@ -3,6 +3,15 @@
 /// <reference path="../TypeScript/Editor.d.ts" />
 /// <reference path="../TypeScript/Editor.d.ts" />
 /// <reference path="../TypeScript/AtomicWork.d.ts" />
 /// <reference path="../TypeScript/AtomicWork.d.ts" />
 
 
-import __Editor = require("./editor/Editor");
+import Editor = require("editor/Editor");
 
 
-var TheEditor = new __Editor();
+class Main {
+
+    static Editor:Editor;
+
+    static main() {
+        Main.Editor = new Editor();
+    }
+}
+
+Main.main();

+ 5 - 10
Source/AtomicEditor/Application/AEEditorApp.cpp

@@ -67,19 +67,14 @@ void AEEditorApp::Start()
     jsapi_init_toolcore(vm_);
     jsapi_init_toolcore(vm_);
     jsapi_init_editor(vm_);
     jsapi_init_editor(vm_);
 
 
-    SharedPtr<File> file (GetSubsystem<ResourceCache>()->GetFile("AtomicEditor/out/main.js"));
-
-    if (file.Null())
+    duk_get_global_string(vm_->GetJSContext(), "require");
+    duk_push_string(vm_->GetJSContext(), "main");
+    if (duk_pcall(vm_->GetJSContext(), 1) != 0)
     {
     {
-        ErrorExit("Unable to load AtomicEditor/out/main.js");
-        return;
+        vm_->SendJSErrorEvent();
+        ErrorExit("Error executing main.js");
     }
     }
 
 
-    if (!vm_->ExecuteFile(file))
-    {
-        ErrorExit("Error executing AtomicEditor/out/main.js");
-        return;
-    }
 
 
     GetSubsystem<LicenseSystem>()->Initialize();
     GetSubsystem<LicenseSystem>()->Initialize();
 
 

+ 1 - 1
Source/AtomicJS/Javascript/JSVM.cpp

@@ -340,7 +340,7 @@ bool JSVM::ExecuteFile(File *file)
 
 
     duk_push_string(ctx_, file->GetFullPath().CString());
     duk_push_string(ctx_, file->GetFullPath().CString());
     if (duk_eval_raw(ctx_, source.CString(), 0,
     if (duk_eval_raw(ctx_, source.CString(), 0,
-                     DUK_COMPILE_EVAL | DUK_COMPILE_SAFE | DUK_COMPILE_NOSOURCE | DUK_COMPILE_STRLEN) != 0)
+        DUK_COMPILE_EVAL | DUK_COMPILE_SAFE | DUK_COMPILE_NOSOURCE | DUK_COMPILE_STRLEN) != 0)
     {
     {
         SendJSErrorEvent(file->GetFullPath());
         SendJSErrorEvent(file->GetFullPath());