1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- using Jint.Native;
- namespace Jint.Tests.Runtime;
- public class ObjectInstanceTests
- {
- [Fact]
- public void RemovingFirstPropertyFromObjectInstancePropertiesBucketAndEnumerating()
- {
- var engine = new Engine();
- var instance = new JsObject(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 JsObject(engine);
- Assert.NotNull(instance.GetPrototypeOf());
- Assert.Equal("[object Object]", instance.ToString());
- }
- }
|