コード例 #1
0
        public JSValue EvaluateScript(string script, JSObject thisObject, string sourceUrl, int startingLineNumber)
        {
            var js_script     = JSString.New(script);
            var js_source_url = JSString.New(sourceUrl);

            try {
                return(EvaluateScript(js_script, thisObject, js_source_url, startingLineNumber));
            } finally {
                js_script.Release();
                js_source_url.Release();
            }
        }
コード例 #2
0
        private bool JSSetProperty(IntPtr ctx, IntPtr obj, JSString propertyName,
                                   IntPtr value, ref IntPtr exception)
        {
            var context = new JSContext(ctx);

            try {
                return(OnJSSetProperty(new JSObject(context, obj), propertyName.Value, new JSValue(context, value)));
            } catch (JSErrorException e) {
                exception = e.Error.Raw;
                return(false);
            }
        }
コード例 #3
0
        internal static string ToStringAndRelease(JSString str)
        {
            if (str.Equals(JSString.Zero) || str.raw.Equals(IntPtr.Zero))
            {
                return(null);
            }

            try {
                return(str.Value);
            } finally {
                str.Release();
            }
        }
コード例 #4
0
        public bool DeleteProperty(string propertyName)
        {
            var exception = IntPtr.Zero;
            var property  = JSString.New(propertyName);

            try {
                var result = JSObjectDeleteProperty(Context.Raw, Raw, property, ref exception);
                JSException.Proxy(Context, exception);
                return(result);
            } finally {
                property.Release();
            }
        }
コード例 #5
0
        public JSValue GetProperty(string propertyName)
        {
            var exception = IntPtr.Zero;
            var property  = JSString.New(propertyName);

            try {
                var result = JSObjectGetProperty(Context.Raw, Raw, property, ref exception);
                JSException.Proxy(Context, exception);
                return(new JSValue(Context, result));
            } finally {
                property.Release();
            }
        }
コード例 #6
0
 private static extern JSString JSStringRetain(JSString str);
コード例 #7
0
 private static extern IntPtr JSStringGetCharactersPtr(JSString str);
コード例 #8
0
 private static extern void JSPropertyNameAccumulatorAddName(
     JSPropertyNameAccumulator accumulator, JSString propertyName);
コード例 #9
0
 private static extern void JSObjectSetProperty(IntPtr ctx, IntPtr obj, JSString propertyName,
                                                IntPtr value, JSPropertyAttribute attributes, ref IntPtr exception);
コード例 #10
0
 private static extern IntPtr JSObjectMakeFunctionWithCallback(IntPtr ctx, JSString name,
                                                               CallAsFunctionCallback callAsFunction);
コード例 #11
0
 private static extern IntPtr JSEvaluateScript(IntPtr ctx, JSString script,
                                               IntPtr thisObject, JSString sourceURL, int startingLineNumber, ref IntPtr exception);
コード例 #12
0
 private static extern IntPtr JSValueMakeString(IntPtr ctx, JSString value);
コード例 #13
0
 private static extern IntPtr JSValueMakeFromJSONString(IntPtr ctx, JSString str);
コード例 #14
0
 public JSValue(JSContext ctx, string value) : this(ctx, JSValueMakeString(ctx.Raw, JSString.New(value)))
 {
 }
コード例 #15
0
 private bool JSDeleteProperty(IntPtr ctx, IntPtr obj, JSString propertyName, ref IntPtr exception)
 {
     return(OnJSDeleteProperty(new JSObject(ctx, obj), propertyName.Value));
 }
コード例 #16
0
 private static extern IntPtr JSObjectGetProperty(IntPtr ctx, IntPtr obj, JSString propertyName, ref IntPtr exception);
コード例 #17
0
 private static extern void JSStringRelease(JSString str);
コード例 #18
0
 private static extern bool JSStringIsEqual(JSString a, JSString b);
コード例 #19
0
 private static extern bool JSObjectDeleteProperty(IntPtr ctx, IntPtr obj, JSString propertyName, ref IntPtr exception);
コード例 #20
0
 public bool IsEqual(JSString str)
 {
     return(JSStringIsEqual(this, str));
 }
コード例 #21
0
 private static extern bool JSObjectHasProperty(IntPtr ctx, IntPtr obj, JSString propertyName);
コード例 #22
0
 private static extern IntPtr JSStringGetLength(JSString str);
コード例 #23
0
 public void AddName(string propertyName)
 {
     JSPropertyNameAccumulatorAddName(this, JSString.New(propertyName));
 }
コード例 #24
0
 private bool JSHasProperty(IntPtr ctx, IntPtr obj, JSString propertyName)
 {
     return(OnJSHasProperty(new JSObject(ctx, obj), propertyName.Value));
 }