12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- using Jint.Native;
- using Jint.Native.Object;
- namespace Jint.Tests.Runtime
- {
- public class ObjectInstanceTests
- {
- [Fact]
- public void RemovingFirstPropertyFromObjectInstancePropertiesBucketAndEnumerating()
- {
- var engine = new Engine();
- var instance = new ObjectInstance(engine);
- instance.FastSetDataProperty("bare", JsValue.Null);
- instance.FastSetDataProperty("scope", JsValue.Null);
- instance.RemoveOwnProperty("bare");
- var propertyNames = instance.GetOwnProperties().Select(x => x.Key).ToList();
- Assert.Equal(new JsValue[] { "scope" }, propertyNames);
- }
- [Theory]
- [InlineData("Array")]
- [InlineData("Boolean")]
- [InlineData("Date")]
- [InlineData("Error")]
- [InlineData("Number")]
- [InlineData("Object")]
- [InlineData("String")]
- public void ExtendingObjects(string baseType)
- {
- var code = $@"
- class My{baseType} extends {baseType} {{
- constructor(...args) {{
- super(...args);
- }}
- }}
- const o = new My{baseType}();
- o.constructor === My{baseType}";
- var engine = new Engine();
- Assert.True(engine.Evaluate(code).AsBoolean());
- }
- [Fact]
- public void ShouldHavePrototypeInPlaceByDefault()
- {
- var engine = new Engine();
- var instance = new ObjectInstance(engine);
- Assert.NotNull(instance.GetPrototypeOf());
- Assert.Equal("[object Object]", instance.ToString());
- }
- }
- }
|