Bläddra i källkod

Added check if map files are not exists

rsredsq 10 år sedan
förälder
incheckning
906d84ad1c

+ 3 - 3
Source/AtomicEditor/Application/AEEditorApp.cpp

@@ -157,10 +157,10 @@ void AEEditorApp::HandleJSError(StringHash eventType, VariantMap& eventData)
     String errMessage = eventData[P_ERRORMESSAGE].GetString();
     String errFilename = eventData[P_ERRORFILENAME].GetString();
     //String errStack = eventData[P_ERRORSTACK].GetString();
-    int errLineNumber = eventData[P_ERRORLINENUMBER].GetInt();
-    int errRealLineNumber = vm_->GetRealLineNumber("AtomicEditor/out/" + errFilename, errLineNumber);
+    int errLineNumber = vm_->GetRealLineNumber("AtomicEditor/out/" + errFilename, eventData[P_ERRORLINENUMBER].GetInt());
+    //int errRealLineNumber = ;
 
-    String errorString = ToString("%s - %s - Line: %i", errFilename.CString(), errMessage.CString(), errRealLineNumber);
+    String errorString = ToString("%s - %s - Line: %i", errFilename.CString(), errMessage.CString(), errLineNumber);
 
 
     ErrorExit(errorString);

+ 7 - 2
Source/AtomicJS/Javascript/JSVM.cpp

@@ -248,12 +248,17 @@ void JSVM::SendJSErrorEvent(const String& filename)
 }
 
 int JSVM::GetRealLineNumber(const String& fileName, const int lineNumber) {
-    int realLineNumber = -1;
-    String map;
+    int realLineNumber = lineNumber;
     String path = fileName;
     if (!path.EndsWith(".js.map"))
         path += ".js.map";
     SharedPtr<File> mapFile(GetSubsystem<ResourceCache>()->GetFile(path));
+    //if there's no source map file, maybe you use a pure js, so give an error, or maybe forgot to generate source-maps :(
+    if (mapFile.Null()) 
+    {
+        return realLineNumber;
+    }    
+    String map;
     mapFile->ReadText(map);
     int top = duk_get_top(ctx_);
     duk_get_global_string(ctx_, "require");