Exemple #1
0
        public void SetPropertyBySymbol(JavaScriptSymbol symbol, JavaScriptValue value)
        {
            var eng = GetEngine();

            IntPtr propId;

            Errors.ThrowIfIs(api_.JsGetPropertyIdFromSymbol(symbol.handle_, out propId));
            Errors.ThrowIfIs(api_.JsSetProperty(handle_, propId, value.handle_, false));
        }
Exemple #2
0
 public JavaScriptValue this[JavaScriptSymbol symbol]
 {
     get
     {
         return(GetPropertyBySymbol(symbol));
     }
     set
     {
         SetPropertyBySymbol(symbol, value);
     }
 }
        internal JavaScriptValue CreateValueFromHandle(JavaScriptValueSafeHandle handle)
        {
            Debug.Assert(!(handle.IsClosed || handle.IsInvalid));

            JsValueType kind;

            Errors.ThrowIfIs(api_.JsGetValueType(handle, out kind));

            JavaScriptValue result = null;

            switch (kind)
            {
            case JsValueType.JsArray:
                result = new JavaScriptArray(handle, JavaScriptValueType.Array, this);
                break;

            case JsValueType.JsFunction:
                result = new JavaScriptFunction(handle, JavaScriptValueType.Function, this);
                break;

            case JsValueType.JsObject:
            case JsValueType.JsNull:
            case JsValueType.JsError:
                result = new JavaScriptObject(handle, JavaScriptValueType.Object, this);
                break;

            case JsValueType.JsSymbol:
                result = new JavaScriptSymbol(handle, JavaScriptValueType.Symbol, this);
                break;

            case JsValueType.JsArrayBuffer:
                result = new JavaScriptArrayBuffer(handle, JavaScriptValueType.ArrayBuffer, this);
                break;

            case JsValueType.JsTypedArray:
                result = new JavaScriptTypedArray(handle, JavaScriptValueType.TypedArray, this);
                break;

            case JsValueType.JsDataView:
                result = new JavaScriptDataView(handle, JavaScriptValueType.DataView, this);
                break;

            case JsValueType.JsBoolean:
            case JsValueType.JsNumber:
            case JsValueType.JsString:
            case JsValueType.JsUndefined:
            default:
                result = new JavaScriptValue(handle, kind.ToApiValueType(), this);
                break;
            }

            return(result);
        }
Exemple #4
0
        public void DeletePropertyBySymbol(JavaScriptSymbol symbol)
        {
            var eng = GetEngine();

            IntPtr propId;

            Errors.ThrowIfIs(api_.JsGetPropertyIdFromSymbol(symbol.handle_, out propId));

            JavaScriptValueSafeHandle tmpResult;

            Errors.ThrowIfIs(api_.JsDeleteProperty(handle_, propId, false, out tmpResult));
            tmpResult.Dispose();
        }
Exemple #5
0
        public JavaScriptValue GetPropertyBySymbol(JavaScriptSymbol symbol)
        {
            var eng = GetEngine();

            IntPtr propId;

            Errors.ThrowIfIs(api_.JsGetPropertyIdFromSymbol(symbol.handle_, out propId));

            JavaScriptValueSafeHandle resultHandle;

            Errors.ThrowIfIs(api_.JsGetProperty(handle_, propId, out resultHandle));

            return(eng.CreateValueFromHandle(resultHandle));
        }
 public JavaScriptValue this[JavaScriptSymbol symbol]
 {
     get
     {
         return GetPropertyBySymbol(symbol);
     }
     set
     {
         SetPropertyBySymbol(symbol, value);
     }
 }
        public void DeletePropertyBySymbol(JavaScriptSymbol symbol)
        {
            var eng = GetEngine();

            IntPtr propId;
            Errors.ThrowIfIs(api_.JsGetPropertyIdFromSymbol(symbol.handle_, out propId));

            JavaScriptValueSafeHandle tmpResult;
            Errors.ThrowIfIs(api_.JsDeleteProperty(handle_, propId, false, out tmpResult));
            tmpResult.Dispose();
        }
        public void SetPropertyBySymbol(JavaScriptSymbol symbol, JavaScriptValue value)
        {
            var eng = GetEngine();

            IntPtr propId;
            Errors.ThrowIfIs(api_.JsGetPropertyIdFromSymbol(symbol.handle_, out propId));
            Errors.ThrowIfIs(api_.JsSetProperty(handle_, propId, value.handle_, false));
        }
        public JavaScriptValue GetPropertyBySymbol(JavaScriptSymbol symbol)
        {
            var eng = GetEngine();

            IntPtr propId;
            Errors.ThrowIfIs(api_.JsGetPropertyIdFromSymbol(symbol.handle_, out propId));

            JavaScriptValueSafeHandle resultHandle;
            Errors.ThrowIfIs(api_.JsGetProperty(handle_, propId, out resultHandle));

            return eng.CreateValueFromHandle(resultHandle);
        }