Esempio n. 1
0
        public TypeRegister(ScriptRuntime runtime, ScriptContext context)
        {
            var ctx = (JSContext)context;

            _context = context;
            _atoms   = new AtomCache(_context);
            _db      = runtime.GetTypeDB();
        }
Esempio n. 2
0
        public TypeRegister(ScriptContext context)
        {
            var ctx = (JSContext)context;

            _context  = context;
            _refCount = 1;
            _atoms    = new AtomCache(_context);
            _db       = context.GetTypeDB();
        }
Esempio n. 3
0
        public ScriptContext(ScriptRuntime runtime, int contextId)
        {
            _isValid   = true;
            _runtime   = runtime;
            _contextId = contextId;
            _ctx       = JSApi.JS_NewContext(_runtime);
            JSApi.JS_SetContextOpaque(_ctx, (IntPtr)_contextId);
            JSApi.JS_AddIntrinsicOperators(_ctx);
            _atoms            = new AtomCache(_ctx);
            _stringCache      = new JSStringCache(_ctx);
            _moduleCache      = JSApi.JS_NewObject(_ctx);
            _loadedModuleHash = new Dictionary <string, string>();

            _globalObject        = JSApi.JS_GetGlobalObject(_ctx);
            _objectConstructor   = JSApi.JS_GetProperty(_ctx, _globalObject, JSApi.JS_ATOM_Object);
            _numberConstructor   = JSApi.JS_GetProperty(_ctx, _globalObject, JSApi.JS_ATOM_Number);
            _proxyConstructor    = JSApi.JS_GetProperty(_ctx, _globalObject, JSApi.JS_ATOM_Proxy);
            _stringConstructor   = JSApi.JS_GetProperty(_ctx, _globalObject, JSApi.JS_ATOM_String);
            _functionConstructor = JSApi.JS_GetProperty(_ctx, _globalObject, JSApi.JS_ATOM_Function);
            _operatorCreate      = JSApi.JS_UNDEFINED;

            var operators = JSApi.JS_GetProperty(_ctx, _globalObject, JSApi.JS_ATOM_Operators);

            if (!operators.IsNullish())
            {
                if (operators.IsException())
                {
                    _ctx.print_exception();
                }
                else
                {
                    var create = JSApi.JS_GetProperty(_ctx, operators, GetAtom("create"));
                    JSApi.JS_FreeValue(_ctx, operators);
                    if (create.IsException())
                    {
                        _ctx.print_exception();
                    }
                    else
                    {
                        if (JSApi.JS_IsFunction(_ctx, create) == 1)
                        {
                            _operatorCreate = create;

                            // Function.prototype[Symbol.operatorSet] = Operators.create();
                            CreateDefaultOperators(_functionConstructor);
                        }
                        else
                        {
                            JSApi.JS_FreeValue(_ctx, create);
                        }
                    }
                }
            }
        }
Esempio n. 4
0
        public ScriptContext(ScriptRuntime runtime, int contextId)
        {
            _isValid   = true;
            _runtime   = runtime;
            _contextId = contextId;
            _ctx       = JSApi.JS_NewContext(_runtime);
            JSApi.JS_SetContextOpaque(_ctx, (IntPtr)_contextId);
            JSApi.JS_AddIntrinsicOperators(_ctx);
            _atoms       = new AtomCache(_ctx);
            _moduleCache = JSApi.JS_NewObject(_ctx);

            _globalObject      = JSApi.JS_GetGlobalObject(_ctx);
            _numberConstructor = JSApi.JS_GetProperty(_ctx, _globalObject, JSApi.JS_ATOM_Number);
            _stringConstructor = JSApi.JS_GetProperty(_ctx, _globalObject, JSApi.JS_ATOM_String);
            _operatorCreate    = JSApi.JS_UNDEFINED;

            var operators = JSApi.JS_GetProperty(_ctx, _globalObject, JSApi.JS_ATOM_Operators);

            if (!operators.IsNullish())
            {
                if (operators.IsException())
                {
                    _ctx.print_exception();
                }
                else
                {
                    var create = JSApi.JS_GetProperty(_ctx, operators, GetAtom("create"));
                    JSApi.JS_FreeValue(_ctx, operators);
                    if (create.IsException())
                    {
                        _ctx.print_exception();
                    }
                    else
                    {
                        if (JSApi.JS_IsFunction(_ctx, create) == 1)
                        {
                            _operatorCreate = create;
                        }
                        else
                        {
                            JSApi.JS_FreeValue(_ctx, create);
                        }
                    }
                }
            }
        }