Skip to content

Commit 064520b

Browse files
committed
Return undefined for undetermined indices
1 parent 4422c63 commit 064520b

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

AngleSharp.Scripting.JavaScript/DomNodeInstance.cs

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,23 @@ public override PropertyDescriptor GetOwnProperty(String propertyName)
4141
if (_numericIndexer != null && Int32.TryParse(propertyName, out numericIndex))
4242
{
4343
var args = new Object[] { numericIndex };
44-
var orig = _numericIndexer.GetMethod.Invoke(_value, args);
45-
var prop = orig != null ? orig.ToJsValue(_engine) : JsValue.Undefined;
46-
return new PropertyDescriptor(prop, false, false, false);
44+
45+
try
46+
{
47+
var orig = _numericIndexer.GetMethod.Invoke(_value, args);
48+
var prop = orig.ToJsValue(_engine);
49+
return new PropertyDescriptor(prop, false, false, false);
50+
}
51+
catch (TargetInvocationException ex)
52+
{
53+
if (ex.InnerException is ArgumentOutOfRangeException)
54+
{
55+
var prop = JsValue.Undefined;
56+
return new PropertyDescriptor(prop, false, false, false);
57+
}
58+
59+
throw;
60+
}
4761
}
4862

4963
// Else a string property

0 commit comments

Comments
 (0)