120 TRACE(
"(%p)\n", arguments);
124 for(
i = 0;
i < arguments->
argc;
i++)
148 return arguments->
buf +
idx;
188 for(
i = 0;
i < arguments->
argc;
i++) {
195 if(arguments->
scope) {
212 for(frame =
ctx->call_ctx; frame; frame = frame->
prev_frame) {
297 const BOOL on_stack = scope->
frame == frame;
311 for(
i = 0;
i < arguments->
argc ;
i++) {
316 ERR(
"out of memory\n");
337 WARN(
"Script engine state does not allow running code.\n");
349 TRACE(
"%p\n", jsthis);
351 for(frame =
ctx->call_ctx; frame; frame = frame->
prev_frame) {
366 TRACE(
"%p\n", jsthis);
378 static const WCHAR native_prefixW[] =
L"\nfunction ";
379 static const WCHAR native_suffixW[] =
L"() {\n [native code]\n}\n";
386 memcpy(
ptr, native_prefixW,
sizeof(native_prefixW));
390 memcpy(
ptr, native_suffixW,
sizeof(native_suffixW));
500 FIXME(
"throw TypeError\n");
579 bound_this =
argv[0];
608 ERR(
"dispex is not a function\n");
639 for(frame =
ctx->call_ctx; frame; frame = frame->
prev_frame) {
723 else if(builtin_info)
732 function->
vtbl = vtbl;
779 if(!
ctx->function_constr)
796 function->
proc = value_proc;
880 DWORD exec_flags = 0;
884 TRACE(
"%p\n", function);
886 if(
flags & DISPATCH_CONSTRUCT) {
893 IDispatch_AddRef(this_obj);
902 if(
flags & DISPATCH_CONSTRUCT)
907 IDispatch_Release(this_obj);
990 DISPPARAMS dp = { .cArgs =
argc, .rgvarg =
buf };
992 EXCEPINFO ei = { 0 };
997 if(
flags & DISPATCH_CONSTRUCT)
1009 TRACE(
"no host dispatch\n");
1014 IWineJSDispatchHost_Release(
obj);
1026 hres = IWineJSDispatchHost_CallFunction(
obj, function->
id, function->
iid, function->
flags, &dp,
1027 r ? &retv :
NULL, &ei, &
ctx->jscaller->IServiceProvider_iface);
1038 if(dp.rgvarg !=
buf)
1040 IWineJSDispatchHost_Release(
obj);
1077 if(!
ctx->function_constr)
1096 return IWineJSDispatchHost_AddRef(constr->
host_iface);
1102 return IWineJSDispatchHost_Release(constr->
host_iface);
1128 DISPPARAMS dp = { .cArgs =
argc, .rgvarg =
buf };
1129 EXCEPINFO ei = { 0 };
1133 flags &= ~DISPATCH_JSCRIPT_INTERNAL_MASK;
1146 &
ctx->jscaller->IServiceProvider_iface);
1157 if(dp.rgvarg !=
buf)
1246 TRACE(
"%p\n", function);
1250 call_args =
malloc(call_argc *
sizeof(*call_args));
1255 memcpy(call_args, function->
args, function->
argc *
sizeof(*call_args));
1282 TRACE(
"%p\n", function);
1284 for(
i = 0;
i < function->
argc;
i++)
1297 for(
i = 0;
i < function->
argc;
i++) {
1355 unsigned len = 0,
i = 0;
1362 static const WCHAR function_anonymousW[] =
L"function anonymous(";
1363 static const WCHAR function_beginW[] =
L") {\n";
1364 static const WCHAR function_endW[] =
L"\n}";
1385 memcpy(
str, function_anonymousW,
sizeof(function_anonymousW));
1396 memcpy(
ptr, function_beginW,
sizeof(function_beginW));
1400 memcpy(
ptr, function_endW,
sizeof(function_endW));
1415 ctx->call_ctx ?
ctx->call_ctx->bytecode->named_item :
NULL, &
code);
1420 if(
code->global_code.func_cnt != 1 ||
code->global_code.var_cnt != 1) {
1421 ERR(
"Invalid parser result!\n");
1444 case DISPATCH_CONSTRUCT: {
1452 else IDispatch_Release(
ret);
1482 TRUE, object_prototype, (
void**)&prot);
1487 prot->
name =
L"prototype";
1493 constr->
name =
L"Function";
@ SCRIPTSTATE_UNINITIALIZED
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
void handle_dispatch_exception(script_ctx_t *ctx, EXCEPINFO *ei)
static const builtin_prop_t InterpretedFunction_props[]
static const builtin_info_t FunctionInst_info
static FunctionInstance * function_from_jsdisp(jsdisp_t *jsdisp)
BOOL is_builtin_eval_func(jsdisp_t *jsdisp)
static function_code_t * HostFunction_get_code(FunctionInstance *function)
static const builtin_info_t Function_info
static HRESULT InterpretedFunction_get_prototype(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
static HRESULT BindFunction_gc_traverse(struct gc_ctx *gc_ctx, enum gc_traverse_op op, FunctionInstance *func)
static HRESULT Function_apply(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static ULONG HostConstructor_addref(jsdisp_t *jsdisp)
static const function_vtbl_t HostConstructorVtbl
static HRESULT no_gc_traverse(struct gc_ctx *gc_ctx, enum gc_traverse_op op, FunctionInstance *function)
static void BindFunction_destructor(FunctionInstance *func)
static HRESULT set_constructor_prop(script_ctx_t *ctx, jsdisp_t *constr, jsdisp_t *prot)
static FunctionInstance * function_this(jsval_t vthis)
static HRESULT FunctionConstr_value(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const builtin_prop_t Arguments_props[]
static HRESULT Function_get_caller(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
static HRESULT HostFunction_call(script_ctx_t *ctx, FunctionInstance *func, jsval_t vthis, unsigned flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT Arguments_prop_put(jsdisp_t *jsdisp, unsigned idx, jsval_t val)
HRESULT setup_arguments_object(script_ctx_t *ctx, call_frame_t *frame)
static HRESULT create_bind_function(script_ctx_t *, FunctionInstance *, jsval_t, unsigned, jsval_t *, jsdisp_t **r)
static HRESULT native_function_string(const WCHAR *name, jsstr_t **ret)
static HRESULT HostFunction_toString(FunctionInstance *func, jsstr_t **ret)
static HRESULT array_to_args(script_ctx_t *ctx, jsdisp_t *arg_array, unsigned *argc, jsval_t **ret)
static HRESULT Function_get_arguments(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
static const function_vtbl_t HostFunctionVtbl
static const builtin_prop_t Function_props[]
static HRESULT Arguments_prop_get(jsdisp_t *jsdisp, unsigned idx, jsval_t *r)
static void NativeFunction_destructor(FunctionInstance *function)
function_code_t * Function_get_code(jsdisp_t *jsthis)
static HRESULT BindFunction_get_caller(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
static HRESULT Arguments_get_caller(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
static const builtin_info_t Arguments_info
HRESULT init_host_constructor(script_ctx_t *ctx, IWineJSDispatchHost *host_constr, IWineJSDispatch *prototype, IWineJSDispatch **ret)
static const function_vtbl_t InterpretedFunctionVtbl
static HRESULT BindFunction_get_arguments(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
static const builtin_info_t InterpretedFunction_info
HRESULT create_source_function(script_ctx_t *ctx, bytecode_t *code, function_code_t *func_code, scope_chain_t *scope_chain, jsdisp_t **ret)
static HRESULT HostFunction_gc_traverse(struct gc_ctx *gc_ctx, enum gc_traverse_op op, FunctionInstance *func)
static HRESULT NativeFunction_toString(FunctionInstance *func, jsstr_t **ret)
static const function_vtbl_t BindFunctionVtbl
static ArgumentsInstance * arguments_from_jsdisp(jsdisp_t *jsdisp)
static const builtin_info_t HostFunction_info
static const builtin_prop_t FunctionInst_props[]
static HRESULT InterpretedFunction_toString(FunctionInstance *func, jsstr_t **ret)
static HRESULT InterpretedFunction_gc_traverse(struct gc_ctx *gc_ctx, enum gc_traverse_op op, FunctionInstance *func)
static function_code_t * NativeFunction_get_code(FunctionInstance *function)
static const builtin_info_t HostConstructor_info
static HRESULT Arguments_lookup_prop(jsdisp_t *jsdisp, const WCHAR *name, unsigned flags, struct property_info *desc)
static HRESULT HostConstructor_gc_traverse(struct gc_ctx *gc_ctx, enum gc_traverse_op op, FunctionInstance *func)
static HRESULT HostConstructor_call(script_ctx_t *ctx, FunctionInstance *func, jsval_t vthis, unsigned flags, unsigned argc, jsval_t *argv, jsval_t *r)
static void Function_destructor(jsdisp_t *dispex)
static void HostConstructor_destructor(FunctionInstance *func)
static HRESULT Function_call(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const builtin_info_t Arguments_ES5_info
HRESULT Function_invoke(jsdisp_t *func_this, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static function_code_t * BindFunction_get_code(FunctionInstance *function)
static void InterpretedFunction_destructor(FunctionInstance *func)
HRESULT Function_get_value(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
static HRESULT create_function(script_ctx_t *ctx, const builtin_info_t *builtin_info, const function_vtbl_t *vtbl, size_t size, DWORD flags, BOOL funcprot, jsdisp_t *prototype, void **ret)
static HRESULT HostConstructor_lookup_prop(jsdisp_t *jsdisp, const WCHAR *name, unsigned flags, struct property_info *desc)
static const function_vtbl_t NativeFunctionVtbl
static HRESULT Function_bind(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT Function_toString(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static void Arguments_destructor(jsdisp_t *jsdisp)
static HRESULT Arguments_next_prop(jsdisp_t *jsdisp, unsigned id, struct property_info *desc)
static ULONG HostConstructor_release(jsdisp_t *jsdisp)
static HRESULT Function_gc_traverse(struct gc_ctx *gc_ctx, enum gc_traverse_op op, jsdisp_t *dispex)
static function_code_t * HostConstructor_get_code(FunctionInstance *function)
HRESULT create_host_function(script_ctx_t *ctx, const struct property_info *desc, DWORD flags, jsdisp_t **ret)
HRESULT init_function_constr(script_ctx_t *ctx, jsdisp_t *object_prototype)
static HRESULT BindFunction_toString(FunctionInstance *function, jsstr_t **ret)
static HRESULT construct_function(script_ctx_t *ctx, unsigned argc, jsval_t *argv, IDispatch **ret)
HRESULT create_builtin_constructor(script_ctx_t *ctx, builtin_invoke_t value_proc, const WCHAR *name, const builtin_info_t *builtin_info, DWORD flags, jsdisp_t *prototype, jsdisp_t **ret)
static void HostFunction_destructor(FunctionInstance *func)
static HRESULT Arguments_gc_traverse(struct gc_ctx *gc_ctx, enum gc_traverse_op op, jsdisp_t *jsdisp)
static HRESULT Arguments_value(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
void detach_arguments_object(call_frame_t *frame)
HRESULT Function_value(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT Function_get_length(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
static HRESULT NativeFunction_call(script_ctx_t *ctx, FunctionInstance *func, jsval_t vthis, unsigned flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const builtin_prop_t BindFunction_props[]
static HRESULT InterpretedFunction_set_prototype(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t value)
static HRESULT InterpretedFunction_call(script_ctx_t *ctx, FunctionInstance *func, jsval_t vthis, unsigned flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT HostConstructor_toString(FunctionInstance *function, jsstr_t **ret)
static jsval_t * get_argument_ref(ArgumentsInstance *arguments, unsigned idx)
static HRESULT FunctionProt_value(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT BindFunction_call(script_ctx_t *ctx, FunctionInstance *func, jsval_t vthis, unsigned flags, unsigned argc, jsval_t *argv, jsval_t *r)
HRESULT create_builtin_function(script_ctx_t *ctx, builtin_invoke_t value_proc, const WCHAR *name, const builtin_info_t *builtin_info, DWORD flags, jsdisp_t *prototype, jsdisp_t **ret)
static function_code_t * InterpretedFunction_get_code(FunctionInstance *func)
static const builtin_info_t BindFunction_info
IDispatch * lookup_global_host(script_ctx_t *ctx)
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 scope_chain_t * scope_addref(scope_chain_t *scope)
static void scope_release(scope_chain_t *scope)
#define EXEC_RETURN_TO_INTERP
static bytecode_t * bytecode_addref(bytecode_t *code)
GLdouble GLdouble GLdouble r
GLenum const GLfloat * params
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
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 const GLfloat const GLdouble const GLfloat GLint GLint GLint j
static HRESULT to_string(VARIANT *src, BSTR *dst)
void release_bytecode(bytecode_t *code)
HRESULT compile_script(script_ctx_t *ctx, const WCHAR *code, UINT64 source_context, unsigned start_line, const WCHAR *args, const WCHAR *delimiter, BOOL from_eval, BOOL use_decode, named_item_t *named_item, bytecode_t **ret)
HRESULT jsdisp_define_data_property(jsdisp_t *obj, const WCHAR *name, unsigned flags, jsval_t value)
HRESULT jsdisp_propput_name(jsdisp_t *obj, const WCHAR *name, jsval_t val)
HRESULT jsdisp_propput(jsdisp_t *obj, const WCHAR *name, DWORD flags, BOOL throw, jsval_t val)
HRESULT init_dispex_from_constr(jsdisp_t *dispex, script_ctx_t *ctx, const builtin_info_t *builtin_info, jsdisp_t *constr)
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)
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 jsdisp_get_idx(jsdisp_t *obj, DWORD idx, jsval_t *r)
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_propget_name(jsdisp_t *obj, const WCHAR *name, jsval_t *val)
jsdisp_t * jsdisp_addref(jsdisp_t *obj)
jsdisp_t * to_jsdisp(IDispatch *disp)
HRESULT jsdisp_next_index(jsdisp_t *obj, unsigned length, unsigned id, struct property_info *desc)
HRESULT JSGlobal_eval(script_ctx_t *ctx, jsval_t vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
#define DISPATCH_JSCRIPT_CALLEREXECSSOURCE
#define JS_E_OBJECT_REQUIRED
HRESULT create_object(script_ctx_t *, jsdisp_t *, jsdisp_t **)
HRESULT to_uint32(script_ctx_t *, jsval_t, UINT32 *)
#define SCRIPTLANGUAGEVERSION_ES5
#define JS_E_FUNCTION_EXPECTED
HRESULT(* builtin_invoke_t)(script_ctx_t *, jsval_t, WORD, unsigned, jsval_t *, jsval_t *)
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)
HRESULT to_object(script_ctx_t *, jsval_t, IDispatch **)
#define JS_E_INVALID_ACTION
static BOOL is_class(jsdisp_t *jsdisp, jsclass_t class)
#define DISPATCH_JSCRIPT_INTERNAL_MASK
const unsigned int PROPF_WRITABLE
const unsigned int PROPF_CONFIGURABLE
const unsigned int PROPF_METHOD
const unsigned int PROPF_CONSTR
jsstr_t * jsstr_alloc_len(const WCHAR *buf, unsigned len)
jsstr_t * jsstr_alloc_buf(unsigned len, WCHAR **buf)
static void jsstr_release(jsstr_t *str)
static unsigned jsstr_length(jsstr_t *str)
static unsigned jsstr_flush(jsstr_t *str, WCHAR *buf)
static jsstr_t * jsstr_alloc(const WCHAR *str)
HRESULT jsval_copy(jsval_t v, jsval_t *r)
HRESULT variant_to_jsval(script_ctx_t *ctx, VARIANT *var, jsval_t *r)
void jsval_release(jsval_t val)
HRESULT jsval_to_variant(jsval_t val, VARIANT *retv)
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 BOOL is_null_disp(jsval_t v)
static BOOL is_undefined(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)
#define memcpy(s1, s2, n)
D3D11_SHADER_VARIABLE_DESC desc
static unsigned(__cdecl *hash_bstr)(bstr_t s)
FunctionInstance * target
FunctionInstance function
const function_vtbl_t * vtbl
FunctionInstance function
IWineJSDispatchHost * host_iface
FunctionInstance function
FunctionInstance function
function_code_t * func_code
scope_chain_t * scope_chain
FunctionInstance function
struct _call_frame_t * prev_frame
scope_chain_t * base_scope
jsdisp_t * function_instance
HRESULT(* gc_traverse)(struct gc_ctx *, enum gc_traverse_op, FunctionInstance *)
HRESULT(* toString)(FunctionInstance *, jsstr_t **)
function_code_t *(* get_code)(FunctionInstance *)
HRESULT(* call)(script_ctx_t *, FunctionInstance *, jsval_t, unsigned, unsigned, jsval_t *, jsval_t *)
void(* destructor)(FunctionInstance *)
struct _call_frame_t * frame
struct vars_buffer * detached_vars
IWineJSDispatch IWineJSDispatch_iface
#define FIELD_OFFSET(t, f)
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
#define DISP_E_UNKNOWNNAME