|
@@ -1,3 +1,5 @@
|
|
|
|
+using Jint.Runtime;
|
|
|
|
+
|
|
namespace Jint.Tests.Runtime;
|
|
namespace Jint.Tests.Runtime;
|
|
|
|
|
|
public class ClassTests
|
|
public class ClassTests
|
|
@@ -45,4 +47,33 @@ public class ClassTests
|
|
Assert.Equal(10, engine.Evaluate("board.width"));
|
|
Assert.Equal(10, engine.Evaluate("board.width"));
|
|
Assert.Equal(20, engine.Evaluate("board.doubleWidth "));
|
|
Assert.Equal(20, engine.Evaluate("board.doubleWidth "));
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ [Fact]
|
|
|
|
+ public void PrivateMemberAccessOutsideOfClass()
|
|
|
|
+ {
|
|
|
|
+ var ex = Assert.Throws<JavaScriptException>(() => new Engine().Evaluate
|
|
|
|
+ (
|
|
|
|
+ """
|
|
|
|
+ class A { }
|
|
|
|
+
|
|
|
|
+ new A().#nonexistent = 1;
|
|
|
|
+ """
|
|
|
|
+ ));
|
|
|
|
+
|
|
|
|
+ Assert.Equal("Unexpected identifier '#nonexistent'", ex.Message);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ [Fact]
|
|
|
|
+ public void PrivateMemberAccessAgainstUnknownMemberInConstructor()
|
|
|
|
+ {
|
|
|
|
+ var ex = Assert.Throws<JavaScriptException>(() => new Engine().Evaluate
|
|
|
|
+ (
|
|
|
|
+ """
|
|
|
|
+ class A { constructor() { #nonexistent = 2; } }
|
|
|
|
+ new A();
|
|
|
|
+ """
|
|
|
|
+ ));
|
|
|
|
+
|
|
|
|
+ Assert.Equal("Unexpected identifier '#nonexistent'", ex.Message);
|
|
|
|
+ }
|
|
}
|
|
}
|