Skip to content

Commit 528171b

Browse files
committed
Ignore undefined optional arguments
1 parent dc62af4 commit 528171b

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

AngleSharp.Scripting.JavaScript/Extensions.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,21 @@ public static Object[] BuildArgs(this EngineInstance context, MethodBase method,
144144
var n = Math.Min(arguments.Length, max - offset);
145145

146146
for (int i = 0; i < n; i++)
147-
args[i + offset] = arguments[i].FromJsValue().As(parameters[i].ParameterType, context);
147+
{
148+
if (parameters[i].IsOptional && arguments[i].IsUndefined())
149+
args[i + offset] = parameters[i].DefaultValue;
150+
else
151+
args[i + offset] = arguments[i].FromJsValue().As(parameters[i].ParameterType, context);
152+
}
148153

149154
for (int i = n + offset; i < max; i++)
150-
args[i] = parameters[i].IsOptional ? parameters[i].DefaultValue : parameters[i].ParameterType.GetDefaultValue();
155+
{
156+
if (parameters[i].IsOptional)
157+
args[i] = parameters[i].DefaultValue;
158+
else
159+
args[i] = parameters[i].ParameterType.GetDefaultValue();
160+
}
161+
151162

152163
if (max != parameters.Length)
153164
{

0 commit comments

Comments
 (0)