diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2011-11-30 12:50:32 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2011-11-30 12:50:32 +0000 |
commit | 099e97532cca6925282e79ebe267cc3b25e7aa4f (patch) | |
tree | 57a4ac543be7c777497ca5ca554138554fd59c97 /libs | |
parent | c5329d85d5a3f4ac14d0a07b298167876d979413 (diff) |
libs/web: add assert() statements for unresolvable function case
Diffstat (limited to 'libs')
-rw-r--r-- | libs/web/luasrc/dispatcher.lua | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/libs/web/luasrc/dispatcher.lua b/libs/web/luasrc/dispatcher.lua index 911f2f4e9..7c77f2e97 100644 --- a/libs/web/luasrc/dispatcher.lua +++ b/libs/web/luasrc/dispatcher.lua @@ -761,10 +761,18 @@ end local function _call(self, ...) + local func = getfenv()[self.name] + assert(func ~= nil, + 'Cannot resolve function "' .. self.name .. '". Is it misspelled or local?') + + assert(type(func) == "function", + 'The symbol "' .. self.name .. '" does not refer to a function but data ' .. + 'of type "' .. type(func) .. '".') + if #self.argv > 0 then - return getfenv()[self.name](unpack(self.argv), ...) + return func(unpack(self.argv), ...) else - return getfenv()[self.name](...) + return func(...) end end |