diff options
Diffstat (limited to 'web/callback.js')
| -rw-r--r-- | web/callback.js | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/web/callback.js b/web/callback.js index 1b3028e..178b8e9 100644 --- a/web/callback.js +++ b/web/callback.js | |||
| @@ -2,20 +2,44 @@ addToLibrary({ | |||
| 2 | 2 | ||
| 3 | cbfl: [], | 3 | cbfl: [], |
| 4 | 4 | ||
| 5 | validateCallbackId__deps: [ 'cbfl' ], | ||
| 6 | validateCallbackId: function(i) { | ||
| 7 | if (i < 0) { | ||
| 8 | console.log("--- WARNING ---"); | ||
| 9 | console.log("Trying to access callback function of invalid id " + i); | ||
| 10 | console.log("--- WARNING ---"); | ||
| 11 | return false; | ||
| 12 | } | ||
| 13 | |||
| 14 | if (i >= _cbfl.length) { | ||
| 15 | console.log("--- WARNING ---"); | ||
| 16 | console.log("Trying to access callback function " + i + ", but only " | ||
| 17 | + _cbfl.length + " have been registered. This may be caused by a " | ||
| 18 | + "call outside of the main thread."); | ||
| 19 | console.log("--- WARNING ---"); | ||
| 20 | return false; | ||
| 21 | } | ||
| 22 | |||
| 23 | return true; | ||
| 24 | }, | ||
| 25 | |||
| 5 | addCallbackFunction__deps: [ 'cbfl' ], | 26 | addCallbackFunction__deps: [ 'cbfl' ], |
| 6 | addCallbackFunction: function(f) { | 27 | addCallbackFunction: function(f) { |
| 7 | _cbfl.push(f) | 28 | _cbfl.push(f) |
| 8 | return _cbfl.length - 1 | 29 | return _cbfl.length - 1 |
| 9 | }, | 30 | }, |
| 10 | 31 | ||
| 11 | callFunction__deps: [ 'cbfl' ], | 32 | callFunction__deps: [ 'cbfl', 'validateCallbackId' ], |
| 12 | callFunction: function(id, arg) { | 33 | callFunction: function(id, arg) { |
| 13 | _cbfl[id](UTF8ToString(arg)) | 34 | if (_validateCallbackId(id)) |
| 35 | _cbfl[id](UTF8ToString(arg)); | ||
| 14 | }, | 36 | }, |
| 15 | 37 | ||
| 16 | callFunctionInt__deps: [ 'cbfl' ], | 38 | callFunctionInt__deps: [ 'cbfl', 'validateCallbackId' ], |
| 17 | callFunctionInt: function(id) { | 39 | callFunctionInt: function(id) { |
| 18 | return _cbfl[id]() | 40 | if (_validateCallbackId(id)) |
| 41 | return _cbfl[id](); | ||
| 42 | return 0; | ||
| 19 | }, | 43 | }, |
| 20 | 44 | ||
| 21 | }); | 45 | }); |
