public override object ExecIdCall(IdFunctionObject f, Context cx, IScriptable scope, IScriptable thisObj, object [] args)
        {
            if (!f.HasTag(SCRIPT_TAG))
            {
                return(base.ExecIdCall(f, cx, scope, thisObj, args));
            }
            int id = f.MethodId;

            switch (id)
            {
            case Id_constructor: {
                string        source  = (args.Length == 0) ? "" : ScriptConvert.ToString(args [0]);
                IScript       script  = compile(cx, source);
                BuiltinScript nscript = new BuiltinScript(script);
                ScriptRuntime.setObjectProtoAndParent(nscript, scope);
                return(nscript);
            }


            case Id_toString: {
                if (thisObj is BuiltinFunction)
                {
                    return(((BuiltinFunction)thisObj).Decompile(0, 0));
                }

                BuiltinScript real       = realThis(thisObj, f);
                IScript       realScript = real.script;
                if (realScript == null)
                {
                    return("");
                }
                return(cx.DecompileScript(realScript, 0));
            }


            case Id_exec: {
                throw Context.ReportRuntimeErrorById("msg.cant.call.indirect", "exec");
            }


            case Id_compile: {
                BuiltinScript real   = realThis(thisObj, f);
                string        source = ScriptConvert.ToString(args, 0);
                real.script = compile(cx, source);
                return(real);
            }
            }
            throw new ArgumentException(Convert.ToString(id));
        }
Example #2
0
 internal static new void Init (IScriptable scope, bool zealed)
 {
     BuiltinScript obj = new BuiltinScript (null);
     obj.ExportAsJSClass (MAX_PROTOTYPE_ID, scope, zealed, ScriptableObject.DONTENUM | ScriptableObject.READONLY | ScriptableObject.PERMANENT);
 }
Example #3
0
        public override object ExecIdCall (IdFunctionObject f, Context cx, IScriptable scope, IScriptable thisObj, object [] args)
        {
            if (!f.HasTag (SCRIPT_TAG)) {
                return base.ExecIdCall (f, cx, scope, thisObj, args);
            }
            int id = f.MethodId;
            switch (id) {

                case Id_constructor: {
                        string source = (args.Length == 0) ? "" : ScriptConvert.ToString (args [0]);
                        IScript script = compile (cx, source);
                        BuiltinScript nscript = new BuiltinScript (script);
                        ScriptRuntime.setObjectProtoAndParent (nscript, scope);
                        return nscript;
                    }


                case Id_toString: {
                        if (thisObj is BuiltinFunction)
                            return ((BuiltinFunction)thisObj).Decompile (0, 0);
                            
                        BuiltinScript real = realThis (thisObj, f);
                        IScript realScript = real.script;
                        if (realScript == null) {
                            return "";
                        }
                        return cx.DecompileScript (realScript, 0);
                    }


                case Id_exec: {
                        throw Context.ReportRuntimeErrorById ("msg.cant.call.indirect", "exec");
                    }


                case Id_compile: {
                        BuiltinScript real = realThis (thisObj, f);
                        string source = ScriptConvert.ToString (args, 0);
                        real.script = compile (cx, source);
                        return real;
                    }
            }
            throw new ArgumentException (Convert.ToString (id));
        }
 internal static new void Init(IScriptable scope, bool zealed)
 {
     BuiltinScript obj = new BuiltinScript (null);
     obj.ExportAsJSClass (MAX_PROTOTYPE_ID, scope, zealed);
 }
        internal static new void Init(IScriptable scope, bool zealed)
        {
            BuiltinScript obj = new BuiltinScript(null);

            obj.ExportAsJSClass(MAX_PROTOTYPE_ID, scope, zealed, ScriptableObject.DONTENUM | ScriptableObject.READONLY | ScriptableObject.PERMANENT);
        }
Example #6
0
        internal static new void Init(IScriptable scope, bool zealed)
        {
            BuiltinScript obj = new BuiltinScript(null);

            obj.ExportAsJSClass(MAX_PROTOTYPE_ID, scope, zealed);
        }