summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2011-11-30 12:50:32 +0000
committerJo-Philipp Wich <jow@openwrt.org>2011-11-30 12:50:32 +0000
commit099e97532cca6925282e79ebe267cc3b25e7aa4f (patch)
tree57a4ac543be7c777497ca5ca554138554fd59c97
parentc5329d85d5a3f4ac14d0a07b298167876d979413 (diff)
libs/web: add assert() statements for unresolvable function case
-rw-r--r--libs/web/luasrc/dispatcher.lua12
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