瀏覽代碼

Fix PG error handling

David Catuhe 5 年之前
父節點
當前提交
456b0f4f9c
共有 2 個文件被更改,包括 8 次插入5 次删除
  1. 7 4
      Playground/js/main.js
  2. 1 1
      dist/preview release/packagesSizeBaseLine.json

+ 7 - 4
Playground/js/main.js

@@ -8,10 +8,13 @@ handleException = function(parent, e) {
     console.error(e);
     console.error(e);
 }
 }
 
 
-fastEval = function(code) {
+fastEval = function(code, parent) {
     var head = document.getElementsByTagName('head')[0];
     var head = document.getElementsByTagName('head')[0];
     var script = document.createElement('script');
     var script = document.createElement('script');
     script.setAttribute('type', 'text/javascript');
     script.setAttribute('type', 'text/javascript');
+    script.onerror = (message) => {
+        parent.utils.showError(message);
+    }
 
 
     script.innerHTML = code;
     script.innerHTML = code;
 
 
@@ -86,7 +89,7 @@ compileAndRun = function(parent, fpsLabel) {
                 engine = createDefaultEngine();
                 engine = createDefaultEngine();
                 scene = new BABYLON.Scene(engine);
                 scene = new BABYLON.Scene(engine);
                 var runScript = null;
                 var runScript = null;
-                fastEval("runScript = function(scene, canvas) {" + code + "}");
+                fastEval("runScript = function(scene, canvas) {" + code + "}", parent);
                 runScript(scene, canvas);
                 runScript(scene, canvas);
 
 
                 parent.zipTool.ZipCode = "var engine = " + defaultEngineZip + ";\r\nvar scene = new BABYLON.Scene(engine);\r\n\r\n" + code;
                 parent.zipTool.ZipCode = "var engine = " + defaultEngineZip + ";\r\nvar scene = new BABYLON.Scene(engine);\r\n\r\n" + code;
@@ -101,14 +104,14 @@ compileAndRun = function(parent, fpsLabel) {
                 }
                 }
 
 
                 // Create engine
                 // Create engine
-                fastEval("engine = " + createEngineFunction + "()");
+                fastEval("engine = " + createEngineFunction + "()", parent);
                 if (!engine) {
                 if (!engine) {
                     parent.utils.showError("createEngine function must return an engine.", null);
                     parent.utils.showError("createEngine function must return an engine.", null);
                     return;
                     return;
                 }                
                 }                
 
 
                 // Execute the code
                 // Execute the code
-                fastEval(code);
+                fastEval(code, parent);
 
 
                 if (!scene) {
                 if (!scene) {
                     parent.utils.showError(createSceneFunction + " function must return a scene.", null);
                     parent.utils.showError(createSceneFunction + " function must return a scene.", null);

+ 1 - 1
dist/preview release/packagesSizeBaseLine.json

@@ -1 +1 @@
-{"thinEngineOnly":116032,"engineOnly":152875,"sceneOnly":496469,"minGridMaterial":626518,"minStandardMaterial":750373}
+{"thinEngineOnly":116032,"engineOnly":152917,"sceneOnly":496836,"minGridMaterial":627345,"minStandardMaterial":751200}