diff --git a/modules/juce_core/javascript/juce_Javascript.cpp b/modules/juce_core/javascript/juce_Javascript.cpp index cdf073791c..1e269d088b 100644 --- a/modules/juce_core/javascript/juce_Javascript.cpp +++ b/modules/juce_core/javascript/juce_Javascript.cpp @@ -673,14 +673,13 @@ struct JavascriptEngine::RootObject : public DynamicObject var getResult (const Scope& s) const override { - var function (object->getResult (s)); - if (DotOperator* dot = dynamic_cast (object.get())) { var thisObject (dot->parent->getResult (s)); return invokeFunction (s, s.findFunctionCall (location, thisObject, dot->child), thisObject); } + var function (object->getResult (s)); return invokeFunction (s, function, var (s.scope)); } @@ -790,9 +789,9 @@ struct JavascriptEngine::RootObject : public DynamicObject static const Identifier thisIdent ("this"); functionRoot->setProperty (thisIdent, args.thisObject); - const int numArgs = jmin (parameters.size(), args.numArguments); - for (int i = 0; i < numArgs; ++i) - functionRoot->setProperty (parameters.getReference(i), args.arguments[i]); + for (int i = 0; i < parameters.size(); ++i) + functionRoot->setProperty (parameters.getReference(i), + i < args.numArguments ? args.arguments[i] : var::undefined()); var result; body->perform (Scope (&s, s.root, functionRoot), &result);