diff options
| author | daurnimator <quae@daurnimator.com> | 2017-09-27 23:20:21 +1000 |
|---|---|---|
| committer | daurnimator <quae@daurnimator.com> | 2017-09-27 23:20:21 +1000 |
| commit | c8d109ee3634ec8973338bdbf73dbaf3bd20afe5 (patch) | |
| tree | d33d9f7d6b09c4a96d3b241d25a336ba0f1a5e35 | |
| parent | fcfa9dafbd6cc57c9259d0f0ae5f3aaa32ddd8d1 (diff) | |
| download | fengari-c8d109ee3634ec8973338bdbf73dbaf3bd20afe5.tar.gz fengari-c8d109ee3634ec8973338bdbf73dbaf3bd20afe5.tar.bz2 fengari-c8d109ee3634ec8973338bdbf73dbaf3bd20afe5.zip | |
src/loadlib.js: Check that JS library returns expected type(s)
| -rw-r--r-- | src/loadlib.js | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/loadlib.js b/src/loadlib.js index e7626ab..7a50556 100644 --- a/src/loadlib.js +++ b/src/loadlib.js @@ -56,7 +56,12 @@ if (WEB) { return null; } let res = func(fengari); - return res; + if (typeof res === "function" || (typeof res === "object" && res !== null)) { + return res; + } else { + lua.lua_pushstring(L, lua.to_luastring(`library returned unexpected type (${typeof res})`)); + return null; + } } else { lua.lua_pushstring(L, lua.to_luastring(`${xhr.status}: ${xhr.statusText}`)); return null; |
