Index: src/execution.cc |
diff --git a/src/execution.cc b/src/execution.cc |
index db74492316103971ced0d1c27257ff1ecd1caed3..e84ab9e8ed430e4e4fb4779b4166669c4551730a 100644 |
--- a/src/execution.cc |
+++ b/src/execution.cc |
@@ -145,11 +145,16 @@ static Handle<Object> Invoke(bool construct, |
} |
-Handle<Object> Execution::Call(Handle<JSFunction> func, |
+Handle<Object> Execution::Call(Handle<Object> callable, |
Handle<Object> receiver, |
int argc, |
Object*** args, |
bool* pending_exception) { |
+ if (!callable->IsJSFunction()) { |
+ callable = TryGetFunctionDelegate(callable, pending_exception); |
+ if (*pending_exception) return callable; |
+ } |
+ Handle<JSFunction> func = Handle<JSFunction>::cast(callable); |
return Invoke(false, func, receiver, argc, args, pending_exception); |
} |