68 ctx->stack[
ctx->stack_top++] =
v;
86 return ctx->stack[
ctx->stack_top-1];
92 return ctx->stack+
ctx->stack_top-1-
n;
105 return ctx->stack +
ctx->stack_top-
n;
111 return ctx->stack[--
ctx->stack_top];
202 IDispatch_Release(
val->u.idref.disp);
204 case EXPRVAL_STACK_REF:
209 case EXPRVAL_INVALID:
242 scope = frame->
scope;
257 r->type = EXPRVAL_INVALID;
268 r->type = EXPRVAL_INVALID;
277 r->type = EXPRVAL_IDREF;
283 r->type = EXPRVAL_STACK_REF;
288 r->type = EXPRVAL_IDREF;
294 r->type = EXPRVAL_INVALID;
299 r->type = EXPRVAL_JSVAL;
318 case EXPRVAL_STACK_REF: {
326 WARN(
"ignoring an attempt to set value reference\n");
337 case EXPRVAL_STACK_REF:
356 case EXPRVAL_STACK_REF: {
383 case EXPRVAL_JSVAL: {
389 IDispatch_Release(
obj);
405 if(
ref->type == EXPRVAL_JSVAL) {
412 if(
ref->type == EXPRVAL_IDREF)
413 IDispatch_Release(
ref->u.idref.disp);
424 if(
val->u.idref.disp)
425 IDispatch_Release(
val->u.idref.disp);
427 case EXPRVAL_STACK_REF:
428 case EXPRVAL_INVALID:
435 val->type = EXPRVAL_INVALID;
441 ref->type = EXPRVAL_IDREF;
444 IDispatch_AddRef(
obj);
446 IDispatch_AddRef(
ref->u.idref.disp =
obj);
448 ref->u.idref.id =
id;
487 IDispatch_Release(scope->
obj);
530 for(
i = 0;
i <
cnt;
i++) {
547 IDispatch_Release(
obj);
580 IDispatch_AddRef(
obj);
619 hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (
void**)&dispex);
622 IDispatchEx_Release(dispex);
624 TRACE(
"using IDispatch\n");
625 hres = IDispatch_GetIDsOfNames(disp, &
IID_NULL, &bstr, 1, 0,
id);
628 if(name_bstr != bstr)
644 if(!disp1 || !disp2) {
660 IUnknown_Release(
unk1);
668 hres = IUnknown_QueryInterface(
unk1, &IID_IObjectIdentity, (
void**)&
identity);
678 IUnknown_Release(
unk1);
679 IUnknown_Release(unk2);
712 WARN(
"VARIANT type, returning false\n");
810 TRACE(
"detaching %p\n", frame);
821 TRACE(
"detaching scope chain %p, frame %p.\n",
ctx->call_ctx->scope, frame);
832 if(
item->flags & SCRIPTITEM_GLOBALMEMBERS) {
851 if(!(
item->flags & SCRIPTITEM_GLOBALMEMBERS))
continue;
882 for(scope =
ctx->call_ctx->scope; scope; scope = scope->
next) {
888 ret->type = EXPRVAL_STACK_REF;
890 TRACE(
"returning ref %d for %d\n",
ret->u.off,
ref->ref);
894 if(!
wcscmp(identifier,
L"arguments")) {
903 TRACE(
"returning a function from scope chain\n");
904 ret->type = EXPRVAL_JSVAL;
924 item =
ctx->call_ctx->bytecode->named_item;
931 if(!(
item->flags & SCRIPTITEM_CODEONLY)) {
949 IDispatch_AddRef(
item->disp);
950 ret->type = EXPRVAL_JSVAL;
1019 FIXME(
"invalid ref: %08lx\n", prop_ref.
u.
hres);
1027 hres = IDispatch_QueryInterface(
obj, &IID_IDispatchEx, (
void**)&dispex);
1029 hres = IDispatchEx_GetNextDispID(dispex, fdexEnumDefault,
id, &
id);
1031 hres = IDispatchEx_GetMemberName(dispex,
id, &
name);
1032 IDispatchEx_Release(dispex);
1036 TRACE(
"No IDispatchEx\n");
1067 unsigned int i, off,
index;
1073 scope = frame->
scope;
1082 else if (!scope->
obj)
1150 IDispatch_Release(disp);
1161 TRACE(
"scope_index %u.\n", scope_index);
1178 if(
ctx->call_ctx->scope->dispex.ref > 1) {
1181 ERR(
"Failed to detach variable object: %08lx\n",
hres);
1295 except->catch_off = catch_off;
1296 except->finally_off = finally_off;
1308 unsigned finally_off;
1310 TRACE(
"%u\n", ret_off);
1315 finally_off =
except->finally_off;
1328 frame->
ip = finally_off;
1330 frame->
ip = ret_off;
1348 TRACE(
"passing exception\n");
1388 TRACE(
"%d\n", func_idx);
1391 frame->
scope, &dispex);
1421 IDispatch_Release(
obj);
1433 IDispatch_Release(
obj);
1462 IDispatch_Release(
obj);
1491 IDispatch_Release(
obj);
1500 ref.type = EXPRVAL_IDREF;
1502 ref.u.idref.id =
id;
1504 IDispatch_Release(
obj);
1565 TRACE(
"%d %d\n", argn, do_ret);
1583 TRACE(
"%d %d\n", argn, do_ret);
1604 TRACE(
"%d %d\n", argn, do_ret);
1643 IDispatch_AddRef(this_obj);
1656 if(exprval.
type == EXPRVAL_INVALID && (
flags & fdexNameEnsure)) {
1660 if(
ctx->call_ctx->bytecode->named_item)
1661 script_obj =
ctx->call_ctx->bytecode->named_item->script_obj;
1670 if(exprval.
type == EXPRVAL_INVALID ||
1672 WARN(
"invalid ref\n");
1690 if(exprval.
type == EXPRVAL_INVALID)
1712 ref.type = EXPRVAL_STACK_REF;
1771 TRACE(
"%s\n",
arg ?
"true" :
"false");
2035 FIXME(
"non-jsdisp objects not supported\n");
2039 if(
obj->is_constructor) {
2055 for(iter = tmp; !
ret && iter; iter = iter->
prototype) {
2061 FIXME(
"prototype is not an object\n");
2273 IDispatch_Release(
obj);
2278 IDispatch_Release(
obj);
2300 switch(exprval.
type) {
2301 case EXPRVAL_STACK_REF:
2306 IDispatch_Release(exprval.
u.
idref.disp);
2310 case EXPRVAL_INVALID:
2314 FIXME(
"Unsupported exprval\n");
2337 *
ret =
L"undefined";
2410 if(exprval.
type == EXPRVAL_INVALID)
2968 IDispatch_Release(
obj);
2973 IDispatch_Release(
obj);
3102#define X(x,a,b,c) interp_##x,
3108#define X(a,x,b,c) x,
3125 ERR(
"Failed to detach variable object: %08lx\n",
hres);
3144 IDispatch_Release(frame->
this_obj);
3155 for(frame =
ctx->call_ctx; frame; frame = frame->
prev_frame) {
3163 for(
i=0;
i < frame->
argc;
i++) {
3164 if(i < frame->function->param_cnt)
3171 WARN(
"[detached frame]");
3212 frame =
ctx->call_ctx;
3229 frame =
ctx->call_ctx;
3241 frame->
ip = catch_off ? catch_off : except_frame->
finally_off;
3245 except_val =
ctx->ei->value;
3280 frame =
ctx->call_ctx;
3287 }
else if(frame->
ip == -1) {
3293 if(return_to_interp) {
3300 if(!return_to_interp)
3332 hres = IDispatch_QueryInterface(disp, &IID_IBindEventHandler, (
void**)&
target);
3335 IBindEventHandler_Release(
target);
3337 WARN(
"BindEvent failed: %08lx\n",
hres);
3339 FIXME(
"No IBindEventHandler, not yet supported binding\n");
3342 IDispatch_Release(disp);
3348 const unsigned orig_stack =
ctx->stack_top;
3420 scope->
frame = frame;
3446 if(!
ctx->ei->enter_notified) {
3447 ctx->ei->enter_notified =
TRUE;
3448 IActiveScriptSite_OnEnterScript(
ctx->site);
3454 if(!function->
funcs[
i].event_target)
3457 if (function->
funcs[
i].scope_index)
3460 FIXME(
"Event target with scope index are not properly handled.\n");
3496 FIXME(
"Functions with scope index inside eval() are not properly handled.\n");
3508 if(
item && !(
item->flags & SCRIPTITEM_CODEONLY)
3534 frame =
calloc(1,
sizeof(*frame));
3563 if(function_instance)
3570 ctx->call_ctx = frame;
HRESULT create_array(script_ctx_t *ctx, DWORD length, jsdisp_t **ret)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
static BOOL get_bool(D3DXPARAMETER_TYPE type, const void *data)
void(* interp_func)(GLcontext *, GLuint, GLuint, GLfloat, GLuint, GLuint)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
jsdisp_t * create_builtin_error(script_ctx_t *ctx)
HRESULT throw_error(script_ctx_t *ctx, HRESULT error, const WCHAR *str)
BOOL is_builtin_eval_func(jsdisp_t *jsdisp)
HRESULT create_named_item_script_obj(script_ctx_t *ctx, named_item_t *item)
named_item_t * lookup_named_item(script_ctx_t *ctx, const WCHAR *item_name, unsigned flags)
#define IDS_RUNTIME_ERROR
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
_ACRTIMP double __cdecl fmod(double, double)
static const char * debugstr_variant(const VARIANT *var)
static HRESULT interp_identid(script_ctx_t *ctx)
static HRESULT interp_push_except(script_ctx_t *ctx)
static void pop_call_frame(script_ctx_t *ctx)
static HRESULT interp_undefined(script_ctx_t *ctx)
static jsval_t stack_topn(script_ctx_t *ctx, unsigned n)
static jsval_t * get_detached_var_ref(scope_chain_t *scope, const WCHAR *name)
static HRESULT exprval_propget(script_ctx_t *ctx, exprval_t *ref, jsval_t *r)
static HRESULT interp_assign(script_ctx_t *ctx)
static HRESULT interp_case(script_ctx_t *ctx)
static void print_backtrace(script_ctx_t *ctx)
static HRESULT stack_pop_int(script_ctx_t *ctx, INT *r)
static HRESULT interp_setret(script_ctx_t *ctx)
static HRESULT stack_push(script_ctx_t *ctx, jsval_t v)
static HRESULT interp_carray_set(script_ctx_t *ctx)
static HRESULT interp_local(script_ctx_t *ctx)
static HRESULT disp_get_id(script_ctx_t *ctx, IDispatch *disp, const WCHAR *name, BSTR name_bstr, DWORD flags, DISPID *id)
static HRESULT interp_eq2(script_ctx_t *ctx)
static HRESULT interp_add(script_ctx_t *ctx)
static HRESULT exprval_call(script_ctx_t *ctx, exprval_t *ref, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT unwind_exception(script_ctx_t *ctx, HRESULT exception_hres)
static unsigned get_op_int(script_ctx_t *ctx, int i)
static HRESULT stack_pop_object(script_ctx_t *ctx, IDispatch **r)
static HRESULT detach_variable_object(script_ctx_t *ctx, call_frame_t *frame, BOOL from_release)
static HRESULT bind_event_target(script_ctx_t *ctx, function_code_t *func, jsdisp_t *func_obj)
static HRESULT interp_call_eval(script_ctx_t *ctx)
static HRESULT detach_scope(script_ctx_t *ctx, call_frame_t *frame, scope_chain_t *scope)
static BOOL lookup_global_members(script_ctx_t *ctx, BSTR identifier, exprval_t *ret)
static HRESULT setup_scope(script_ctx_t *ctx, call_frame_t *frame, scope_chain_t *scope_chain, jsdisp_t *variable_object, unsigned argc, jsval_t *argv)
static HRESULT interp_forin(script_ctx_t *ctx)
static HRESULT interp_lshift(script_ctx_t *ctx)
static HRESULT interp_array(script_ctx_t *ctx)
static HRESULT scope_prop_get(jsdisp_t *dispex, unsigned idx, jsval_t *r)
static HRESULT detach_scope_chain(script_ctx_t *ctx, call_frame_t *frame, scope_chain_t *scope)
static HRESULT interp_member(script_ctx_t *ctx)
static HRESULT interp_eq(script_ctx_t *ctx)
local_ref_t * lookup_local(const function_code_t *function, const WCHAR *identifier, unsigned int scope)
static HRESULT interp_typeof(script_ctx_t *ctx)
static HRESULT interp_memberid(script_ctx_t *ctx)
static HRESULT scope_gc_traverse(struct gc_ctx *gc_ctx, enum gc_traverse_op op, jsdisp_t *dispex)
static HRESULT interp_minus(script_ctx_t *ctx)
static HRESULT identifier_value(script_ctx_t *ctx, BSTR identifier)
static HRESULT interp_regexp(script_ctx_t *ctx)
static HRESULT interp_identifier_ref(script_ctx_t *ctx, BSTR identifier, unsigned flags)
static HRESULT identifier_eval(script_ctx_t *ctx, BSTR identifier, exprval_t *ret)
static HRESULT interp_push_with_scope(script_ctx_t *ctx)
static HRESULT stack_pop_uint(script_ctx_t *ctx, UINT32 *r)
static HRESULT interp_neq(script_ctx_t *ctx)
static jsval_t stack_pop(script_ctx_t *ctx)
static const unsigned op_move[]
static HRESULT interp_end_finally(script_ctx_t *ctx)
static void exprval_set_disp_ref(exprval_t *ref, IDispatch *obj, DISPID id)
static HRESULT interp_delete(script_ctx_t *ctx)
static HRESULT interp_new(script_ctx_t *ctx)
static HRESULT interp_gteq(script_ctx_t *ctx)
static HRESULT interp_push_block_scope(script_ctx_t *ctx)
static HRESULT interp_tonum(script_ctx_t *ctx)
static HRESULT stack_push_exprval(script_ctx_t *ctx, exprval_t *val)
static HRESULT interp_in(script_ctx_t *ctx)
static HRESULT interp_set_member(script_ctx_t *ctx)
static HRESULT interp_typeofident(script_ctx_t *ctx)
static HRESULT interp_and(script_ctx_t *ctx)
static HRESULT interp_pop(script_ctx_t *ctx)
static jsval_t * stack_top_ref(script_ctx_t *ctx, unsigned n)
static HRESULT interp_jmp(script_ctx_t *ctx)
static HRESULT interp_push_acc(script_ctx_t *ctx)
static HRESULT interp_mod(script_ctx_t *ctx)
static HRESULT interp_bool(script_ctx_t *ctx)
static HRESULT interp_rshift(script_ctx_t *ctx)
static HRESULT interp_lteq(script_ctx_t *ctx)
static HRESULT interp_call(script_ctx_t *ctx)
static void scope_destructor(jsdisp_t *dispex)
static const op_func_t op_funcs[]
static HRESULT interp_refval(script_ctx_t *ctx)
static HRESULT interp_xor(script_ctx_t *ctx)
static HRESULT interp_call_member(script_ctx_t *ctx)
static HRESULT interp_pop_scope(script_ctx_t *ctx)
static jsval_t * stack_args(script_ctx_t *ctx, unsigned n)
HRESULT(* op_func_t)(script_ctx_t *)
static HRESULT interp_jmp_z(script_ctx_t *ctx)
static HRESULT interp_pop_except(script_ctx_t *ctx)
static HRESULT interp_local_ref(script_ctx_t *ctx)
static HRESULT interp_bneg(script_ctx_t *ctx)
static HRESULT interp_this(script_ctx_t *ctx)
static BSTR get_op_bstr(script_ctx_t *ctx, int i)
static HRESULT interp_throw(script_ctx_t *ctx)
static void exprval_set_exception(exprval_t *val, HRESULT hres)
static HRESULT interp_postinc(script_ctx_t *ctx)
static HRESULT interp_void(script_ctx_t *ctx)
static void jmp_abs(script_ctx_t *ctx, unsigned dst)
static const size_t stack_size
static jsstr_t * get_op_str(script_ctx_t *ctx, int i)
static HRESULT interp_gt(script_ctx_t *ctx)
static void scope_pop(scope_chain_t **scope)
static void jmp_next(script_ctx_t *ctx)
static HRESULT interp_ret(script_ctx_t *ctx)
static HRESULT exprval_propput(script_ctx_t *ctx, exprval_t *ref, jsval_t v)
static HRESULT interp_throw_type(script_ctx_t *ctx)
static HRESULT scope_lookup_prop(jsdisp_t *jsdisp, const WCHAR *name, unsigned flags, struct property_info *desc)
static HRESULT interp_neq2(script_ctx_t *ctx)
static void clear_acc(script_ctx_t *ctx)
static HRESULT interp_cnd_nz(script_ctx_t *ctx)
static double get_op_double(script_ctx_t *ctx)
static HRESULT interp_sub(script_ctx_t *ctx)
static HRESULT interp_new_obj(script_ctx_t *ctx)
static jsval_t steal_ret(call_frame_t *frame)
static HRESULT interp_throw_ref(script_ctx_t *ctx)
static HRESULT interp_rshift2(script_ctx_t *ctx)
static HRESULT interp_or(script_ctx_t *ctx)
IDispatch * lookup_global_host(script_ctx_t *ctx)
static HRESULT interp_instanceof(script_ctx_t *ctx)
static HRESULT interp_cnd_z(script_ctx_t *ctx)
static HRESULT interp_delete_ident(script_ctx_t *ctx)
static HRESULT interp_neg(script_ctx_t *ctx)
static const builtin_info_t scope_info
static unsigned get_op_uint(script_ctx_t *ctx, int i)
static HRESULT scope_init_locals(script_ctx_t *ctx)
static jsval_t stack_top(script_ctx_t *ctx)
static HRESULT exprval_to_value(script_ctx_t *ctx, exprval_t *ref, jsval_t *r)
static void exprval_release(exprval_t *val)
static void set_error_value(script_ctx_t *ctx, jsval_t value)
static unsigned local_off(call_frame_t *frame, int ref)
static HRESULT interp_carray(script_ctx_t *ctx)
static HRESULT interp_double(script_ctx_t *ctx)
static HRESULT equal_values(script_ctx_t *ctx, jsval_t lval, jsval_t rval, BOOL *ret)
static HRESULT interp_str(script_ctx_t *ctx)
static HRESULT enter_bytecode(script_ctx_t *ctx, jsval_t *r)
static HRESULT get_detached_var_dispid(scope_chain_t *scope, const WCHAR *name, DISPID *id)
static BOOL stack_pop_exprval(script_ctx_t *ctx, exprval_t *r)
static HRESULT disp_cmp(IDispatch *disp1, IDispatch *disp2, BOOL *ret)
static void stack_popn(script_ctx_t *ctx, unsigned n)
static HRESULT typeof_string(jsval_t v, const WCHAR **ret)
static HRESULT interp_ident(script_ctx_t *ctx)
static scope_chain_t * scope_from_dispex(jsdisp_t *dispex)
static HRESULT interp_enter_catch(script_ctx_t *ctx)
static HRESULT interp_null(script_ctx_t *ctx)
static HRESULT interp_int(script_ctx_t *ctx)
static HRESULT stack_push_string(script_ctx_t *ctx, const WCHAR *str)
static HRESULT less_eval(script_ctx_t *ctx, jsval_t lval, jsval_t rval, BOOL greater, BOOL *ret)
static BSTR local_name(call_frame_t *frame, int ref)
HRESULT jsval_strict_equal(jsval_t lval, jsval_t rval, BOOL *ret)
HRESULT exec_source(script_ctx_t *ctx, DWORD flags, bytecode_t *bytecode, function_code_t *function, scope_chain_t *scope, IDispatch *this_obj, jsdisp_t *function_instance, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT scope_push(script_ctx_t *ctx, scope_chain_t *scope, IDispatch *obj, scope_chain_t **ret)
static HRESULT stack_pop_number(script_ctx_t *ctx, double *r)
static HRESULT interp_preinc(script_ctx_t *ctx)
static HRESULT interp_obj_prop(script_ctx_t *ctx)
static int __cdecl local_ref_cmp(const void *key, const void *ref)
static HRESULT interp_div(script_ctx_t *ctx)
static HRESULT interp_to_string(script_ctx_t *ctx)
static HRESULT alloc_detached_vars(script_ctx_t *ctx, call_frame_t *frame, scope_chain_t *scope)
static BOOL stack_topn_exprval(script_ctx_t *ctx, unsigned n, exprval_t *r)
static HRESULT interp_typeofid(script_ctx_t *ctx)
static HRESULT interp_lt(script_ctx_t *ctx)
static HRESULT interp_assign_call(script_ctx_t *ctx)
static HRESULT scope_prop_put(jsdisp_t *dispex, unsigned idx, jsval_t val)
static HRESULT interp_mul(script_ctx_t *ctx)
void detach_arguments_object(call_frame_t *)
void set_error_location(jsexcept_t *, bytecode_t *, unsigned, unsigned, jsstr_t *)
static scope_chain_t * scope_addref(scope_chain_t *scope)
@ PROPERTY_DEFINITION_GETTER
@ PROPERTY_DEFINITION_VALUE
static void scope_release(scope_chain_t *scope)
HRESULT setup_arguments_object(script_ctx_t *, call_frame_t *)
HRESULT create_source_function(script_ctx_t *, bytecode_t *, function_code_t *, scope_chain_t *, jsdisp_t **)
#define EXEC_RETURN_TO_INTERP
void reset_ei(jsexcept_t *)
#define INVALID_LOCAL_REF
static bytecode_t * bytecode_addref(bytecode_t *code)
GLint GLint GLsizei GLsizei GLsizei depth
GLuint GLuint GLsizei GLenum type
GLdouble GLdouble GLdouble r
GLboolean GLboolean GLboolean b
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
static HRESULT to_string(VARIANT *src, BSTR *dst)
void release_bytecode(bytecode_t *code)
unsigned get_location_line(bytecode_t *code, unsigned loc, unsigned *char_pos)
HRESULT jsdisp_propput_name(jsdisp_t *obj, const WCHAR *name, jsval_t val)
HRESULT disp_propget(script_ctx_t *ctx, IDispatch *disp, DISPID id, jsval_t *val)
HRESULT jsdisp_get_id(jsdisp_t *jsdisp, const WCHAR *name, DWORD flags, DISPID *id)
HRESULT disp_delete(IDispatch *disp, DISPID id, BOOL *ret)
jsdisp_t * iface_to_jsdisp(IDispatch *iface)
HRESULT gc_process_linked_val(struct gc_ctx *gc_ctx, enum gc_traverse_op op, jsdisp_t *obj, jsval_t *link)
HRESULT disp_call(script_ctx_t *ctx, IDispatch *disp, DISPID id, WORD flags, unsigned argc, jsval_t *argv, jsval_t *ret)
HRESULT disp_delete_name(script_ctx_t *ctx, IDispatch *disp, jsstr_t *name, BOOL *ret)
ULONG jsdisp_release(jsdisp_t *obj)
HRESULT gc_process_linked_obj(struct gc_ctx *gc_ctx, enum gc_traverse_op op, jsdisp_t *obj, jsdisp_t *link, void **unlink_ref)
HRESULT jsdisp_index_lookup(jsdisp_t *obj, const WCHAR *name, unsigned length, struct property_info *desc)
jsdisp_t * as_jsdisp(IDispatch *disp)
HRESULT disp_propput_name(script_ctx_t *ctx, IDispatch *disp, const WCHAR *name, jsval_t val)
HRESULT create_dispex(script_ctx_t *ctx, const builtin_info_t *builtin_info, jsdisp_t *prototype, jsdisp_t **dispex)
IWineJSDispatchHost * get_host_dispatch(IDispatch *disp)
HRESULT init_dispex(jsdisp_t *dispex, script_ctx_t *ctx, const builtin_info_t *builtin_info, jsdisp_t *prototype)
HRESULT jsdisp_get_idx_id(jsdisp_t *jsdisp, DWORD idx, DISPID *id)
HRESULT jsdisp_propget_name(jsdisp_t *obj, const WCHAR *name, jsval_t *val)
HRESULT jsdisp_propput_idx(jsdisp_t *obj, DWORD idx, jsval_t val)
jsdisp_t * jsdisp_addref(jsdisp_t *obj)
jsdisp_t * to_jsdisp(IDispatch *disp)
HRESULT disp_propput(script_ctx_t *ctx, IDispatch *disp, DISPID id, jsval_t val)
HRESULT jsdisp_define_property(jsdisp_t *obj, const WCHAR *name, property_desc_t *desc)
HRESULT builtin_eval(script_ctx_t *ctx, call_frame_t *frame, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
HRESULT to_flat_string(script_ctx_t *, jsval_t, jsstr_t **, const WCHAR **)
#define DISPATCH_JSCRIPT_CALLEREXECSSOURCE
#define JS_E_ILLEGAL_ASSIGN
#define JS_E_OBJECT_EXPECTED
HRESULT create_object(script_ctx_t *, jsdisp_t *, jsdisp_t **)
HRESULT to_primitive(script_ctx_t *, jsval_t, jsval_t *, hint_t)
HRESULT create_regexp(script_ctx_t *, jsstr_t *, DWORD, jsdisp_t **)
HRESULT to_uint32(script_ctx_t *, jsval_t, UINT32 *)
#define SCRIPTLANGUAGEVERSION_ES5
#define JS_E_FUNCTION_EXPECTED
static HRESULT disp_call_value(script_ctx_t *ctx, IDispatch *disp, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static IDispatch * to_disp(jsdisp_t *jsdisp)
const char * debugstr_jsval(const jsval_t)
#define JS_E_UNDEFINED_VARIABLE
static DWORD make_grfdex(script_ctx_t *ctx, DWORD flags)
HRESULT to_object(script_ctx_t *, jsval_t, IDispatch **)
HRESULT to_number(script_ctx_t *, jsval_t, double *)
HRESULT to_int32(script_ctx_t *, jsval_t, INT *)
#define JS_E_STACK_OVERFLOW
#define JS_E_INVALID_PROPERTY
#define JS_E_EXCEPTION_THROWN
HRESULT to_boolean(jsval_t, BOOL *)
#define JS_E_INVALID_ACTION
static BOOL is_class(jsdisp_t *jsdisp, jsclass_t class)
const unsigned int PROPF_ENUMERABLE
const unsigned int PROPF_CONFIGURABLE
jsstr_t * jsstr_alloc_len(const WCHAR *buf, unsigned len)
int jsstr_cmp(jsstr_t *str1, jsstr_t *str2)
jsstr_t * jsstr_undefined(void)
jsstr_t * jsstr_concat(jsstr_t *str1, jsstr_t *str2)
const char * debugstr_jsstr(jsstr_t *str)
static jsstr_t * jsstr_addref(jsstr_t *str)
static const WCHAR * jsstr_flatten(jsstr_t *str)
static BOOL jsstr_eq(jsstr_t *left, jsstr_t *right)
static void jsstr_release(jsstr_t *str)
static jsstr_t * jsstr_alloc(const WCHAR *str)
HRESULT jsval_copy(jsval_t v, jsval_t *r)
void jsval_release(jsval_t val)
static BOOL is_number(jsval_t v)
static VARIANT * get_variant(jsval_t v)
static jsval_t jsval_null(void)
static jsval_t jsval_string(jsstr_t *str)
static jsval_t jsval_undefined(void)
static jsval_t jsval_obj(jsdisp_t *obj)
static jsval_t jsval_bool(BOOL b)
static jsval_type_t jsval_type(jsval_t v)
static BOOL is_null_disp(jsval_t v)
static jsstr_t * get_string(jsval_t v)
static BOOL is_undefined(jsval_t v)
static double get_number(jsval_t v)
static jsval_t jsval_disp(IDispatch *obj)
static IDispatch * get_object(jsval_t v)
static BOOL is_object_instance(jsval_t v)
static BOOL is_null(jsval_t v)
static jsval_t jsval_number(double n)
static BOOL is_bool(jsval_t v)
D3D11_SHADER_VARIABLE_DESC desc
static unsigned int number
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
static VARIANTARG static DISPID
BSTR WINAPI SysAllocString(LPCOLESTR str)
UINT WINAPI SysStringLen(BSTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
#define DISPATCH_PROPERTYPUT
static BOOL is_string(parse_buffer *buf)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
named_item_t * named_item
except_frame_t * except_frame
struct _call_frame_t * prev_frame
scope_chain_t * base_scope
function_code_t * function
jsdisp_t * function_instance
struct _function_code_t::@436 * variables
struct _function_code_t * funcs
local_ref_scopes_t * local_scopes
struct _call_frame_t * frame
struct _scope_chain_t * next
struct vars_buffer * detached_vars
enum exprval_t::@432 type
struct exprval_t::@433::@434 idref
const builtin_info_t * builtin_info
function_code_t * func_code
#define FIELD_OFFSET(t, f)
#define CONTAINING_RECORD(address, type, field)
_In_ ULONG _In_ ULONG_PTR ident
#define DISP_E_UNKNOWNNAME