|
@@ -803,12 +803,12 @@ namespace Jint.Tests.Runtime
|
|
|
|
|
|
Assert.Equal("A", _engine.Evaluate("obj.aProp"));
|
|
Assert.Equal("A", _engine.Evaluate("obj.aProp"));
|
|
Assert.Equal("B", _engine.Evaluate("obj.bProp"));
|
|
Assert.Equal("B", _engine.Evaluate("obj.bProp"));
|
|
-
|
|
|
|
- // TODO we should have a special prototype based on wrapped type so we could differentiate between own and type properties
|
|
|
|
|
|
+
|
|
|
|
+ // TODO we should have a special prototype based on wrapped type so we could differentiate between own and type properties
|
|
// Assert.Equal("[\"a\"]", _engine.Evaluate("JSON.stringify(Object.getOwnPropertyNames(new ExtendedType()))"));
|
|
// Assert.Equal("[\"a\"]", _engine.Evaluate("JSON.stringify(Object.getOwnPropertyNames(new ExtendedType()))"));
|
|
// Assert.Equal("[\"a\",\"b\"]", _engine.Evaluate("JSON.stringify(Object.getOwnPropertyNames(new MyExtendedType()))"));
|
|
// Assert.Equal("[\"a\",\"b\"]", _engine.Evaluate("JSON.stringify(Object.getOwnPropertyNames(new MyExtendedType()))"));
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
[Fact]
|
|
[Fact]
|
|
public void ShouldAllowMethodsOnClrExtendedTypes()
|
|
public void ShouldAllowMethodsOnClrExtendedTypes()
|
|
{
|
|
{
|
|
@@ -846,7 +846,7 @@ namespace Jint.Tests.Runtime
|
|
Assert.Equal(1, _engine.Evaluate("new ExtendsFromClr().getA();"));
|
|
Assert.Equal(1, _engine.Evaluate("new ExtendsFromClr().getA();"));
|
|
Assert.NotEqual(JsValue.Undefined, extendsFromClr.Get("getA"));
|
|
Assert.NotEqual(JsValue.Undefined, extendsFromClr.Get("getA"));
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
private struct TestStruct
|
|
private struct TestStruct
|
|
{
|
|
{
|
|
public int Value;
|
|
public int Value;
|
|
@@ -1353,7 +1353,7 @@ namespace Jint.Tests.Runtime
|
|
var callCount = (int) _engine.GetValue("callCount").AsNumber();
|
|
var callCount = (int) _engine.GetValue("callCount").AsNumber();
|
|
Assert.Equal(1, callCount);
|
|
Assert.Equal(1, callCount);
|
|
Assert.Equal(2, collection.Count);
|
|
Assert.Equal(2, collection.Count);
|
|
-
|
|
|
|
|
|
+
|
|
// make sure our delegate holder is hidden
|
|
// make sure our delegate holder is hidden
|
|
Assert.Equal("[]", _engine.Evaluate("json"));
|
|
Assert.Equal("[]", _engine.Evaluate("json"));
|
|
}
|
|
}
|
|
@@ -2948,13 +2948,27 @@ namespace Jint.Tests.Runtime
|
|
{
|
|
{
|
|
var engine = new Engine();
|
|
var engine = new Engine();
|
|
var mathTypeReference = TypeReference.CreateTypeReference(engine, typeof(Math));
|
|
var mathTypeReference = TypeReference.CreateTypeReference(engine, typeof(Math));
|
|
-
|
|
|
|
|
|
+
|
|
engine.SetValue("Math2", mathTypeReference);
|
|
engine.SetValue("Math2", mathTypeReference);
|
|
var result = engine.Evaluate("Math2.Max(5.37, 5.56)").AsNumber();
|
|
var result = engine.Evaluate("Math2.Max(5.37, 5.56)").AsNumber();
|
|
|
|
|
|
Assert.Equal(5.56d, result);
|
|
Assert.Equal(5.56d, result);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ [Fact]
|
|
|
|
+ public void ArrayPrototypeIndexOfWithInteropList()
|
|
|
|
+ {
|
|
|
|
+ var engine = new Jint.Engine();
|
|
|
|
+
|
|
|
|
+ engine.SetValue("list", new List<string> { "A", "B", "C" });
|
|
|
|
+
|
|
|
|
+ Assert.Equal(1, engine.Evaluate("list.indexOf('B')"));
|
|
|
|
+ Assert.Equal(1, engine.Evaluate("list.lastIndexOf('B')"));
|
|
|
|
+
|
|
|
|
+ Assert.Equal(1, engine.Evaluate("Array.prototype.indexOf.call(list, 'B')"));
|
|
|
|
+ Assert.Equal(1, engine.Evaluate("Array.prototype.lastIndexOf.call(list, 'B')"));
|
|
|
|
+ }
|
|
|
|
+
|
|
private class Profile
|
|
private class Profile
|
|
{
|
|
{
|
|
public int AnyProperty => throw new NotSupportedException("NOT SUPPORTED");
|
|
public int AnyProperty => throw new NotSupportedException("NOT SUPPORTED");
|