From 2063f88c82d85aea23998bdf776683869396fdf1 Mon Sep 17 00:00:00 2001
From: Edward Rudd <urkle@outoforder.cc>
Date: Tue, 14 Oct 2014 16:55:05 +0000
Subject: [PATCH] handle exceptions inside the humble_fetch_asset_data

---
 client/library/library_humble.js |   24 ++++++++++++++----------
 1 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/client/library/library_humble.js b/client/library/library_humble.js
index 0cabd07..de578d9 100644
--- a/client/library/library_humble.js
+++ b/client/library/library_humble.js
@@ -199,17 +199,21 @@
             Runtime.dynCall('viii', onload, [arg, buffer, byteArray.length]);
             _free(buffer);
         }, function(err) {
-            var url = HUMBLE_API.locateAsset(path);
-            Browser.asyncLoad(url, function(byteArray) {
-                HUMBLE_API.storeToCache(cacheKey, byteArray, function(err) {
-                    var buffer = _malloc(byteArray.length);
-                    HEAPU8.set(byteArray, buffer);
-                    Runtime.dynCall('viii', onload, [arg, buffer, byteArray.length]);
-                    _free(buffer);
-                });
-            }, function() {
+            try {
+                var url = HUMBLE_API.locateAsset(path);
+                Browser.asyncLoad(url, function (byteArray) {
+                    HUMBLE_API.storeToCache(cacheKey, byteArray, function (err) {
+                        var buffer = _malloc(byteArray.length);
+                        HEAPU8.set(byteArray, buffer);
+                        Runtime.dynCall('viii', onload, [arg, buffer, byteArray.length]);
+                        _free(buffer);
+                    });
+                }, function() {
+                    if (onerror) Runtime.dynCall('vi', onerror, [arg]);
+                }, true /* NO run dependency */);
+            } catch(ex) {
                 if (onerror) Runtime.dynCall('vi', onerror, [arg]);
-            }, true /* NO run dependency */);
+            }
         });
     },
     humble_get_player_size: function(w, h) {

--
Gitblit v1.9.3