コード例 #1
0
 internal GlobalScope(GlobalScope parent, VsaEngine engine, bool isComponentScope) : base(parent)
 {
     this.componentScopes = null;
     this.recursive = false;
     this.isComponentScope = isComponentScope;
     if (parent == null)
     {
         this.globalObject = engine.Globals.globalObject;
         this.globalObjectTR = TypeReflector.GetTypeReflectorFor(Globals.TypeRefs.ToReferenceContext(this.globalObject.GetType()));
         base.fast = !(this.globalObject is LenientGlobalObject);
     }
     else
     {
         this.globalObject = null;
         this.globalObjectTR = null;
         base.fast = parent.fast;
         if (isComponentScope)
         {
             ((GlobalScope) base.parent).AddComponentScope(this);
         }
     }
     base.engine = engine;
     base.isKnownAtCompileTime = base.fast;
     this.evilScript = true;
     this.thisObject = this;
     this.typeReflector = TypeReflector.GetTypeReflectorFor(Globals.TypeRefs.ToReferenceContext(base.GetType()));
     if (isComponentScope)
     {
         engine.Scopes.Add(this);
     }
 }
コード例 #2
0
 internal ErrorConstructor(String subtypeName, ErrorType type)
   : base(ErrorConstructor.ob.parent, subtypeName, 2){
   this.originalPrototype = new ErrorPrototype(ob.originalPrototype, subtypeName);
   this.originalPrototype._constructor = this;
   this.proto = this.originalPrototype;
   this.type = type;
   this.globalObject = GlobalObject.commonInstance;
 }
コード例 #3
0
 internal ErrorConstructor()
   : base(ErrorPrototype.ob, "Error", 2) {
   this.originalPrototype = ErrorPrototype.ob;
   ErrorPrototype.ob._constructor = this;
   this.proto = ErrorPrototype.ob;
   this.type = ErrorType.OtherError;
   this.globalObject = GlobalObject.commonInstance;
 }
コード例 #4
0
 internal ErrorConstructor(LenientFunctionPrototype parent, LenientErrorPrototype prototypeProp, GlobalObject globalObject)
   : base(parent, "Error", 2) {
   this.originalPrototype = prototypeProp;
   prototypeProp.constructor = this;
   this.proto = prototypeProp;
   this.type = ErrorType.OtherError;
   this.globalObject = globalObject;
   this.noExpando = false;
 }
コード例 #5
0
 internal ErrorConstructor(String subtypeName, ErrorType type, ErrorConstructor error, GlobalObject globalObject)
   : base(error.parent, subtypeName, 2){
   this.originalPrototype = new LenientErrorPrototype((LenientFunctionPrototype)error.parent, error.originalPrototype, subtypeName);
   this.noExpando = false;
   this.originalPrototype._constructor = this;
   this.proto = this.originalPrototype;
   this.type = type;
   this.globalObject = globalObject;
   this.noExpando = false;
 }
コード例 #6
0
      [ContextStatic] public static VsaEngine contextEngine = null; //This keeps track of the (single) engine running in the current context

      internal Globals(bool fast, VsaEngine engine){
        this.engine = engine;
        this.callContextStack = null;
        this.scopeStack = null;
        this.caller = DBNull.Value;
        this.regExpTable = null;
        if (fast)
          this.globalObject = GlobalObject.commonInstance;
        else
          this.globalObject = new LenientGlobalObject(engine);
      }
コード例 #7
0
ファイル: globalscope.cs プロジェクト: ArildF/masters
 internal GlobalScope(GlobalScope parent, VsaEngine engine, bool isComponentScope)
   : base(parent){
   this.componentScopes = null;
   this.recursive = false;
   this.isComponentScope = isComponentScope;
   if (parent == null){
     this.globalObject = engine.Globals.globalObject;
     this.globalObjectTR = TypeReflector.GetTypeReflectorFor(this.globalObject.GetType());
     this.fast = !(this.globalObject is LenientGlobalObject);
   }else{
     this.globalObject = null;
     this.globalObjectTR = null;
     this.fast = parent.fast;
     if (isComponentScope)
       ((GlobalScope)this.parent).AddComponentScope(this);
   }
   this.engine = engine;
   this.isKnownAtCompileTime = this.fast;
   this.evilScript = true; //True by default. Set it false when a single script block is being compiled.
   this.thisObject = this;
   this.typeReflector = TypeReflector.GetTypeReflectorFor(this.GetType());
   if (isComponentScope)
     engine.Scopes.Add(this);
 }
コード例 #8
0
 internal void SetFast()
 {
     base.fast = true;
     base.isKnownAtCompileTime = true;
     if (this.globalObject != null)
     {
         this.globalObject = GlobalObject.commonInstance;
         this.globalObjectTR = TypeReflector.GetTypeReflectorFor(Globals.TypeRefs.ToReferenceContext(this.globalObject.GetType()));
     }
 }
コード例 #9
0
ファイル: globalscope.cs プロジェクト: ArildF/masters
 internal void SetFast(){
   this.fast = true;
   this.isKnownAtCompileTime = true;
   if (this.globalObject != null){
     this.globalObject = GlobalObject.commonInstance;
     this.globalObjectTR = TypeReflector.GetTypeReflectorFor(this.globalObject.GetType());
   }
 }
コード例 #10
0
 internal ErrorConstructor(String subtypeName, ErrorType type, ErrorConstructor error, GlobalObject globalObject)
     : base(error.parent, subtypeName, 2)
 {
     this.originalPrototype = new LenientErrorPrototype((LenientFunctionPrototype)error.parent, error.originalPrototype, subtypeName);
     this.noExpando         = false;
     this.originalPrototype._constructor = this;
     this.proto        = this.originalPrototype;
     this.type         = type;
     this.globalObject = globalObject;
     this.noExpando    = false;
 }
コード例 #11
0
 internal ErrorConstructor(LenientFunctionPrototype parent, LenientErrorPrototype prototypeProp, GlobalObject globalObject)
     : base(parent, "Error", 2)
 {
     this.originalPrototype    = prototypeProp;
     prototypeProp.constructor = this;
     this.proto        = prototypeProp;
     this.type         = ErrorType.OtherError;
     this.globalObject = globalObject;
     this.noExpando    = false;
 }
コード例 #12
0
        internal static Object QuickCall(Object[] args, Object thisob, JSBuiltin biFunc, MethodInfo method, VsaEngine engine)
        {
            int n = args.Length;

            switch (biFunc)
            {
            case JSBuiltin.Array_concat: return(ArrayPrototype.concat(thisob, engine, args));

            case JSBuiltin.Array_join: return(ArrayPrototype.join(thisob, GetArg(args, 0, n)));

            case JSBuiltin.Array_pop: return(ArrayPrototype.pop(thisob));

            case JSBuiltin.Array_push: return(ArrayPrototype.push(thisob, args));

            case JSBuiltin.Array_reverse: return(ArrayPrototype.reverse(thisob));

            case JSBuiltin.Array_shift: return(ArrayPrototype.shift(thisob));

            case JSBuiltin.Array_slice: return(ArrayPrototype.slice(thisob, engine, Convert.ToNumber(GetArg(args, 0, n)), GetArg(args, 1, n)));

            case JSBuiltin.Array_sort: return(ArrayPrototype.sort(thisob, GetArg(args, 0, n)));

            case JSBuiltin.Array_splice:
                return(ArrayPrototype.splice(thisob, engine, Convert.ToNumber(GetArg(args, 0, n)), Convert.ToNumber(GetArg(args, 1, n)), VarArgs(args, 2, n)));

            case JSBuiltin.Array_toLocaleString: return(ArrayPrototype.toLocaleString(thisob));

            case JSBuiltin.Array_toString: return(ArrayPrototype.toString(thisob));

            case JSBuiltin.Array_unshift: return(ArrayPrototype.unshift(thisob, args));

            case JSBuiltin.Boolean_toString: return(BooleanPrototype.toString(thisob));

            case JSBuiltin.Boolean_valueOf: return(BooleanPrototype.valueOf(thisob));

            case JSBuiltin.Date_getDate: return(DatePrototype.getDate(thisob));

            case JSBuiltin.Date_getDay: return(DatePrototype.getDay(thisob));

            case JSBuiltin.Date_getFullYear: return(DatePrototype.getFullYear(thisob));

            case JSBuiltin.Date_getHours: return(DatePrototype.getHours(thisob));

            case JSBuiltin.Date_getMilliseconds: return(DatePrototype.getMilliseconds(thisob));

            case JSBuiltin.Date_getMinutes: return(DatePrototype.getMinutes(thisob));

            case JSBuiltin.Date_getMonth: return(DatePrototype.getMonth(thisob));

            case JSBuiltin.Date_getSeconds: return(DatePrototype.getSeconds(thisob));

            case JSBuiltin.Date_getTime: return(DatePrototype.getTime(thisob));

            case JSBuiltin.Date_getTimezoneOffset: return(DatePrototype.getTimezoneOffset(thisob));

            case JSBuiltin.Date_getUTCDate: return(DatePrototype.getUTCDate(thisob));

            case JSBuiltin.Date_getUTCDay: return(DatePrototype.getUTCDay(thisob));

            case JSBuiltin.Date_getUTCFullYear: return(DatePrototype.getUTCFullYear(thisob));

            case JSBuiltin.Date_getUTCHours: return(DatePrototype.getUTCHours(thisob));

            case JSBuiltin.Date_getUTCMilliseconds: return(DatePrototype.getUTCMilliseconds(thisob));

            case JSBuiltin.Date_getUTCMinutes: return(DatePrototype.getUTCMinutes(thisob));

            case JSBuiltin.Date_getUTCMonth: return(DatePrototype.getUTCMonth(thisob));

            case JSBuiltin.Date_getUTCSeconds: return(DatePrototype.getUTCSeconds(thisob));

            case JSBuiltin.Date_getVarDate: return(DatePrototype.getVarDate(thisob));

            case JSBuiltin.Date_getYear: return(DatePrototype.getYear(thisob));

            case JSBuiltin.Date_parse: return(DateConstructor.parse(Convert.ToString(GetArg(args, 0, n))));

            case JSBuiltin.Date_setDate: return(DatePrototype.setDate(thisob, Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Date_setFullYear: return(DatePrototype.setFullYear(thisob, Convert.ToNumber(GetArg(args, 0, n)), GetArg(args, 1, n), GetArg(args, 2, n)));

            case JSBuiltin.Date_setHours: return(DatePrototype.setHours(thisob, Convert.ToNumber(GetArg(args, 0, n)), GetArg(args, 1, n), GetArg(args, 2, n), GetArg(args, 3, n)));

            case JSBuiltin.Date_setMinutes: return(DatePrototype.setMinutes(thisob, Convert.ToNumber(GetArg(args, 0, n)), GetArg(args, 1, n), GetArg(args, 2, n)));

            case JSBuiltin.Date_setMilliseconds: return(DatePrototype.setMilliseconds(thisob, Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Date_setMonth: return(DatePrototype.setMonth(thisob, Convert.ToNumber(GetArg(args, 0, n)), GetArg(args, 1, n)));

            case JSBuiltin.Date_setSeconds: return(DatePrototype.setSeconds(thisob, Convert.ToNumber(GetArg(args, 0, n)), GetArg(args, 1, n)));

            case JSBuiltin.Date_setTime: return(DatePrototype.setTime(thisob, Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Date_setUTCDate: return(DatePrototype.setUTCDate(thisob, Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Date_setUTCFullYear: return(DatePrototype.setUTCFullYear(thisob, Convert.ToNumber(GetArg(args, 0, n)), GetArg(args, 1, n), GetArg(args, 2, n)));

            case JSBuiltin.Date_setUTCHours: return(DatePrototype.setUTCHours(thisob, Convert.ToNumber(GetArg(args, 0, n)), GetArg(args, 1, n), GetArg(args, 2, n), GetArg(args, 3, n)));

            case JSBuiltin.Date_setUTCMinutes: return(DatePrototype.setUTCMinutes(thisob, Convert.ToNumber(GetArg(args, 0, n)), GetArg(args, 1, n), GetArg(args, 2, n)));

            case JSBuiltin.Date_setUTCMilliseconds: return(DatePrototype.setUTCMilliseconds(thisob, Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Date_setUTCMonth: return(DatePrototype.setUTCMonth(thisob, Convert.ToNumber(GetArg(args, 0, n)), GetArg(args, 1, n)));

            case JSBuiltin.Date_setUTCSeconds: return(DatePrototype.setUTCSeconds(thisob, Convert.ToNumber(GetArg(args, 0, n)), GetArg(args, 1, n)));

            case JSBuiltin.Date_setYear: return(DatePrototype.setYear(thisob, Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Date_toDateString: return(DatePrototype.toDateString(thisob));

            case JSBuiltin.Date_toGMTString: return(DatePrototype.toGMTString(thisob));

            case JSBuiltin.Date_toLocaleDateString: return(DatePrototype.toLocaleDateString(thisob));

            case JSBuiltin.Date_toLocaleString: return(DatePrototype.toLocaleString(thisob));

            case JSBuiltin.Date_toLocaleTimeString: return(DatePrototype.toLocaleTimeString(thisob));

            case JSBuiltin.Date_toString: return(DatePrototype.toString(thisob));

            case JSBuiltin.Date_toTimeString: return(DatePrototype.toTimeString(thisob));

            case JSBuiltin.Date_toUTCString: return(DatePrototype.toUTCString(thisob));

            case JSBuiltin.Date_UTC: return(DateConstructor.UTC(GetArg(args, 0, n), GetArg(args, 1, n), GetArg(args, 2, n), GetArg(args, 3, n), GetArg(args, 4, n), GetArg(args, 5, n), GetArg(args, 6, n)));

            case JSBuiltin.Date_valueOf: return(DatePrototype.valueOf(thisob));

            case JSBuiltin.Enumerator_atEnd: return(EnumeratorPrototype.atEnd(thisob));

            case JSBuiltin.Enumerator_item: return(EnumeratorPrototype.item(thisob));

            case JSBuiltin.Enumerator_moveFirst: EnumeratorPrototype.moveFirst(thisob); return(null);

            case JSBuiltin.Enumerator_moveNext: EnumeratorPrototype.moveNext(thisob); return(null);

            case JSBuiltin.Error_toString: return(ErrorPrototype.toString(thisob));

            case JSBuiltin.Function_apply: return(FunctionPrototype.apply(thisob, GetArg(args, 0, n), GetArg(args, 1, n)));

            case JSBuiltin.Function_call: return(FunctionPrototype.call(thisob, GetArg(args, 0, n), VarArgs(args, 1, n)));

            case JSBuiltin.Function_toString: return(FunctionPrototype.toString(thisob));

            case JSBuiltin.Global_CollectGarbage: GlobalObject.CollectGarbage(); return(null);

            case JSBuiltin.Global_decodeURI: return(GlobalObject.decodeURI(GetArg(args, 0, n)));

            case JSBuiltin.Global_decodeURIComponent: return(GlobalObject.decodeURIComponent(GetArg(args, 0, n)));

            case JSBuiltin.Global_encodeURI: return(GlobalObject.encodeURI(GetArg(args, 0, n)));

            case JSBuiltin.Global_encodeURIComponent: return(GlobalObject.encodeURIComponent(GetArg(args, 0, n)));

            case JSBuiltin.Global_escape: return(GlobalObject.escape(GetArg(args, 0, n)));

            case JSBuiltin.Global_eval: return(GlobalObject.eval(GetArg(args, 0, n)));

            case JSBuiltin.Global_GetObject: return(GlobalObject.GetObject(GetArg(args, 0, n), GetArg(args, 1, n)));

            case JSBuiltin.Global_isNaN: return(GlobalObject.isNaN(GetArg(args, 0, n)));

            case JSBuiltin.Global_isFinite: return(GlobalObject.isFinite(Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Global_parseFloat: return(GlobalObject.parseFloat(GetArg(args, 0, n)));

            case JSBuiltin.Global_parseInt: return(GlobalObject.parseInt(GetArg(args, 0, n), GetArg(args, 1, n)));

            case JSBuiltin.Global_ScriptEngine: return(GlobalObject.ScriptEngine());

            case JSBuiltin.Global_ScriptEngineBuildVersion: return(GlobalObject.ScriptEngineBuildVersion());

            case JSBuiltin.Global_ScriptEngineMajorVersion: return(GlobalObject.ScriptEngineMajorVersion());

            case JSBuiltin.Global_ScriptEngineMinorVersion: return(GlobalObject.ScriptEngineMinorVersion());

            case JSBuiltin.Global_unescape: return(GlobalObject.unescape(GetArg(args, 0, n)));

            case JSBuiltin.Math_abs: return(MathObject.abs(Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Math_acos: return(MathObject.acos(Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Math_asin: return(MathObject.asin(Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Math_atan: return(MathObject.atan(Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Math_atan2: return(MathObject.atan2(Convert.ToNumber(GetArg(args, 0, n)), Convert.ToNumber(GetArg(args, 1, n))));

            case JSBuiltin.Math_ceil: return(MathObject.ceil(Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Math_cos: return(MathObject.cos(Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Math_exp: return(MathObject.exp(Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Math_floor: return(MathObject.floor(Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Math_log: return(MathObject.log(Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Math_max: return(MathObject.max(GetArg(args, 0, n), GetArg(args, 1, n), VarArgs(args, 2, n)));

            case JSBuiltin.Math_min: return(MathObject.min(GetArg(args, 0, n), GetArg(args, 1, n), VarArgs(args, 2, n)));

            case JSBuiltin.Math_pow: return(MathObject.pow(Convert.ToNumber(GetArg(args, 0, n)), Convert.ToNumber(GetArg(args, 1, n))));

            case JSBuiltin.Math_random: return(MathObject.random());

            case JSBuiltin.Math_round: return(MathObject.round(Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Math_sin: return(MathObject.sin(Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Math_sqrt: return(MathObject.sqrt(Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Math_tan: return(MathObject.tan(Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Number_toExponential: return(NumberPrototype.toExponential(thisob, GetArg(args, 0, n)));

            case JSBuiltin.Number_toFixed: return(NumberPrototype.toFixed(thisob, Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.Number_toLocaleString: return(NumberPrototype.toLocaleString(thisob));

            case JSBuiltin.Number_toPrecision: return(NumberPrototype.toPrecision(thisob, GetArg(args, 0, n)));

            case JSBuiltin.Number_toString: return(NumberPrototype.toString(thisob, GetArg(args, 0, n)));

            case JSBuiltin.Number_valueOf: return(NumberPrototype.valueOf(thisob));

            case JSBuiltin.Object_hasOwnProperty: return(ObjectPrototype.hasOwnProperty(thisob, GetArg(args, 0, n)));

            case JSBuiltin.Object_isPrototypeOf: return(ObjectPrototype.isPrototypeOf(thisob, GetArg(args, 0, n)));

            case JSBuiltin.Object_propertyIsEnumerable: return(ObjectPrototype.propertyIsEnumerable(thisob, GetArg(args, 0, n)));

            case JSBuiltin.Object_toLocaleString: return(ObjectPrototype.toLocaleString(thisob));

            case JSBuiltin.Object_toString: return(ObjectPrototype.toString(thisob));

            case JSBuiltin.Object_valueOf: return(ObjectPrototype.valueOf(thisob));

            case JSBuiltin.RegExp_compile: return(RegExpPrototype.compile(thisob, GetArg(args, 0, n), GetArg(args, 1, n)));

            case JSBuiltin.RegExp_exec: return(RegExpPrototype.exec(thisob, GetArg(args, 0, n)));

            case JSBuiltin.RegExp_test: return(RegExpPrototype.test(thisob, GetArg(args, 0, n)));

            case JSBuiltin.RegExp_toString: return(RegExpPrototype.toString(thisob));

            case JSBuiltin.String_anchor: return(StringPrototype.anchor(thisob, GetArg(args, 0, n)));

            case JSBuiltin.String_big: return(StringPrototype.big(thisob));

            case JSBuiltin.String_blink: return(StringPrototype.blink(thisob));

            case JSBuiltin.String_bold: return(StringPrototype.bold(thisob));

            case JSBuiltin.String_charAt: return(StringPrototype.charAt(thisob, Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.String_charCodeAt: return(StringPrototype.charCodeAt(thisob, Convert.ToNumber(GetArg(args, 0, n))));

            case JSBuiltin.String_concat: return(StringPrototype.concat(thisob, args));

            case JSBuiltin.String_fixed: return(StringPrototype.@fixed(thisob));

            case JSBuiltin.String_fontcolor: return(StringPrototype.fontcolor(thisob, GetArg(args, 0, n)));

            case JSBuiltin.String_fontsize: return(StringPrototype.fontsize(thisob, GetArg(args, 0, n)));

            case JSBuiltin.String_fromCharCode: return(StringConstructor.fromCharCode(args));

            case JSBuiltin.String_indexOf: return(StringPrototype.indexOf(thisob, GetArg(args, 0, n), Convert.ToNumber(GetArg(args, 1, n))));

            case JSBuiltin.String_italics: return(StringPrototype.italics(thisob));

            case JSBuiltin.String_lastIndexOf: return(StringPrototype.lastIndexOf(thisob, GetArg(args, 0, n), Convert.ToNumber(GetArg(args, 1, n))));

            case JSBuiltin.String_link: return(StringPrototype.link(thisob, GetArg(args, 0, n)));

            case JSBuiltin.String_localeCompare: return(StringPrototype.localeCompare(thisob, GetArg(args, 0, n)));

            case JSBuiltin.String_match: return(StringPrototype.match(thisob, engine, GetArg(args, 0, n)));

            case JSBuiltin.String_replace: return(StringPrototype.replace(thisob, GetArg(args, 0, n), GetArg(args, 1, n)));

            case JSBuiltin.String_search: return(StringPrototype.search(thisob, engine, GetArg(args, 0, n)));

            case JSBuiltin.String_slice: return(StringPrototype.slice(thisob, Convert.ToNumber(GetArg(args, 0, n)), GetArg(args, 1, n)));

            case JSBuiltin.String_small: return(StringPrototype.small(thisob));

            case JSBuiltin.String_split: return(StringPrototype.split(thisob, engine, GetArg(args, 0, n), GetArg(args, 1, n)));

            case JSBuiltin.String_strike: return(StringPrototype.strike(thisob));

            case JSBuiltin.String_sub: return(StringPrototype.sub(thisob));

            case JSBuiltin.String_substr: return(StringPrototype.substr(thisob, Convert.ToNumber(GetArg(args, 0, n)), GetArg(args, 1, n)));

            case JSBuiltin.String_substring: return(StringPrototype.substring(thisob, Convert.ToNumber(GetArg(args, 0, n)), GetArg(args, 1, n)));

            case JSBuiltin.String_sup: return(StringPrototype.sup(thisob));

            case JSBuiltin.String_toLocaleLowerCase: return(StringPrototype.toLocaleLowerCase(thisob));

            case JSBuiltin.String_toLocaleUpperCase: return(StringPrototype.toLocaleUpperCase(thisob));

            case JSBuiltin.String_toLowerCase: return(StringPrototype.toLowerCase(thisob));

            case JSBuiltin.String_toString: return(StringPrototype.toString(thisob));

            case JSBuiltin.String_toUpperCase: return(StringPrototype.toUpperCase(thisob));

            case JSBuiltin.String_valueOf: return(StringPrototype.valueOf(thisob));

            case JSBuiltin.VBArray_dimensions: return(VBArrayPrototype.dimensions(thisob));

            case JSBuiltin.VBArray_getItem: return(VBArrayPrototype.getItem(thisob, args));

            case JSBuiltin.VBArray_lbound: return(VBArrayPrototype.lbound(thisob, GetArg(args, 0, n)));

            case JSBuiltin.VBArray_toArray: return(VBArrayPrototype.toArray(thisob, engine));

            case JSBuiltin.VBArray_ubound: return(VBArrayPrototype.ubound(thisob, GetArg(args, 0, n)));
            }
            return(method.Invoke(thisob, (BindingFlags)0, JSBinder.ob, args, null));
        }