protected override object ConvertValueToSet(Engine engine, object value) { // we expect value to be generally CLR type, convert when possible return(value switch { JsBoolean jsBoolean => jsBoolean._value ? JsBoolean.BoxedTrue : JsBoolean.BoxedFalse, JsString jsString => jsString.ToString(), JsNumber jsNumber => jsNumber._value, JsNull => null, JsUndefined => null, _ => value });
public void JsValueCanBeCreated() { using (var rt = BaristaRuntimeFactory.CreateRuntime()) { using (var ctx = rt.CreateContext()) { using (ctx.Scope()) { var str = "Test 123"; var valueHandle = rt.Engine.JsCreateString(str, (ulong)str.Length); try { var jsValue = new JsString(rt.Engine, ctx, valueHandle); Assert.Equal(str, jsValue.ToString()); } finally { valueHandle.Dispose(); } } } } }