예제 #1
0
 public override EcmaValueHandle ToHandle(string value)
 {
     if (longDict[value] is EcmaValueHandle handle)
     {
         return(handle);
     }
     lock (longDict) {
         if (longDict[value] is EcmaValueHandle handle2)
         {
             return(handle2);
         }
         EcmaValueHandle handle3 = new EcmaValueHandle(strArr.Count);
         longDict[value] = handle3;
         strArr.Add(value);
         return(handle3);
     }
 }
예제 #2
0
 public string GetToStringTag(EcmaValueHandle handle)
 {
     return(binder.ToStringTag);
 }
예제 #3
0
 public override long FromHandle(EcmaValueHandle handle)
 {
     return(handle.Value);
 }
예제 #4
0
 public string ToString(EcmaValueHandle handle)
 {
     throw new InvalidOperationException();
 }
예제 #5
0
 public EcmaValue ToPrimitive(EcmaValueHandle handle, EcmaPreferredPrimitiveType preferredType)
 {
     throw new InvalidOperationException();
 }
예제 #6
0
 public EcmaValueType GetValueType(EcmaValueHandle handle)
 {
     return(SharedValue);
 }
예제 #7
0
 public bool ToBoolean(EcmaValueHandle handle)
 {
     throw new InvalidOperationException();
 }
예제 #8
0
 public bool HasProperty(EcmaValueHandle handle, EcmaPropertyKey name)
 {
     throw new InvalidOperationException();
 }
예제 #9
0
 public bool ToBoolean(EcmaValueHandle handle)
 {
     return(binder.ToBoolean(value));
 }
예제 #10
0
 public IEnumerable <EcmaPropertyKey> GetEnumerableOwnProperties(EcmaValueHandle handle)
 {
     return(binder.GetEnumerableOwnProperties(value));
 }
예제 #11
0
 public bool HasOwnProperty(EcmaValueHandle handle, EcmaPropertyKey name)
 {
     return(binder.HasOwnProperty(value, name));
 }
예제 #12
0
 public EcmaValue Call(EcmaValueHandle handle, EcmaValue thisValue, params EcmaValue[] arguments)
 {
     throw new EcmaTypeErrorException(InternalString.Error.NotFunction);
 }
예제 #13
0
 public bool TrySet(EcmaValueHandle handle, EcmaPropertyKey name, EcmaValue value)
 {
     return(binder.TrySet(this.value, name, value));
 }
예제 #14
0
 public EcmaNumberType GetNumberType(EcmaValueHandle handle)
 {
     return(binder.NumberType);
 }
예제 #15
0
 public EcmaValueType GetValueType(EcmaValueHandle handle)
 {
     return(binder.ValueType);
 }
예제 #16
0
 public IEnumerable <EcmaPropertyKey> GetEnumerableOwnProperties(EcmaValueHandle handle)
 {
     throw new InvalidOperationException();
 }
예제 #17
0
 public int GetHashCode(EcmaValueHandle handle)
 {
     throw new InvalidOperationException();
 }
예제 #18
0
 public int ToInt32(EcmaValueHandle handle)
 {
     return(binder.ToInt32(value));
 }
예제 #19
0
 public bool IsExtensible(EcmaValueHandle handle)
 {
     throw new InvalidOperationException();
 }
예제 #20
0
 public long ToInt64(EcmaValueHandle handle)
 {
     return(binder.ToInt64(value));
 }
예제 #21
0
 public double ToDouble(EcmaValueHandle handle)
 {
     throw new InvalidOperationException();
 }
예제 #22
0
 public bool TrySet(EcmaValueHandle handle, EcmaPropertyKey name, EcmaValue value)
 {
     throw new InvalidOperationException();
 }
예제 #23
0
 public EcmaValue ToNumber(EcmaValueHandle handle)
 {
     throw new InvalidOperationException();
 }
예제 #24
0
 public EcmaNumberType GetNumberType(EcmaValueHandle handle)
 {
     return(EcmaNumberType.Int64);
 }
예제 #25
0
 public RuntimeObject ToRuntimeObject(EcmaValueHandle handle)
 {
     throw new InvalidOperationException();
 }
예제 #26
0
 public long ToInt64(EcmaValueHandle handle)
 {
     return(handle.Value);
 }
예제 #27
0
 public override Symbol FromHandle(EcmaValueHandle handle)
 {
     return(Symbol.GetSymbol((WellKnownSymbol)handle.Value));
 }
예제 #28
0
 public EcmaValue Call(EcmaValueHandle handle, EcmaValue thisValue, EcmaValue[] arguments)
 {
     throw new InvalidOperationException();
 }
예제 #29
0
 public override T FromHandle(EcmaValueHandle handle)
 {
     return(getObject(handle.Value));
 }
예제 #30
0
 public object FromHandle(EcmaValueHandle handle)
 {
     throw new InvalidOperationException();
 }