jscript: Pass 'this' as jsdisp_t to getters.
This commit is contained in:
parent
da5041eb4b
commit
d541b525e4
@ -49,9 +49,14 @@ static const WCHAR unshiftW[] = {'u','n','s','h','i','f','t',0};
|
|||||||
|
|
||||||
static const WCHAR default_separatorW[] = {',',0};
|
static const WCHAR default_separatorW[] = {',',0};
|
||||||
|
|
||||||
|
static inline ArrayInstance *array_from_jsdisp(jsdisp_t *jsdisp)
|
||||||
|
{
|
||||||
|
return CONTAINING_RECORD(jsdisp, ArrayInstance, dispex);
|
||||||
|
}
|
||||||
|
|
||||||
static inline ArrayInstance *array_from_vdisp(vdisp_t *vdisp)
|
static inline ArrayInstance *array_from_vdisp(vdisp_t *vdisp)
|
||||||
{
|
{
|
||||||
return (ArrayInstance*)vdisp->u.jsdisp;
|
return array_from_jsdisp(vdisp->u.jsdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline ArrayInstance *array_this(vdisp_t *jsthis)
|
static inline ArrayInstance *array_this(vdisp_t *jsthis)
|
||||||
@ -113,13 +118,11 @@ static WCHAR *idx_to_str(DWORD idx, WCHAR *ptr)
|
|||||||
return ptr+1;
|
return ptr+1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT Array_get_length(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT Array_get_length(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
ArrayInstance *This = array_from_vdisp(jsthis);
|
TRACE("%p\n", jsthis);
|
||||||
|
|
||||||
TRACE("%p %d\n", This, This->length);
|
*r = jsval_number(array_from_jsdisp(jsthis)->length);
|
||||||
|
|
||||||
*r = jsval_number(This->length);
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -995,11 +998,13 @@ static HRESULT Array_unshift(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsi
|
|||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT Array_get_value(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT Array_get_value(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
|
ArrayInstance *array = array_from_jsdisp(jsthis);
|
||||||
|
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
|
|
||||||
return array_join(ctx, jsthis->u.jsdisp, array_from_vdisp(jsthis)->length, default_separatorW, r);
|
return array_join(ctx, &array->dispex, array->length, default_separatorW, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Array_destructor(jsdisp_t *dispex)
|
static void Array_destructor(jsdisp_t *dispex)
|
||||||
|
@ -94,9 +94,14 @@ static const WCHAR setYearW[] = {'s','e','t','Y','e','a','r',0};
|
|||||||
static const WCHAR UTCW[] = {'U','T','C',0};
|
static const WCHAR UTCW[] = {'U','T','C',0};
|
||||||
static const WCHAR parseW[] = {'p','a','r','s','e',0};
|
static const WCHAR parseW[] = {'p','a','r','s','e',0};
|
||||||
|
|
||||||
|
static inline DateInstance *date_from_jsdisp(jsdisp_t *jsdisp)
|
||||||
|
{
|
||||||
|
return CONTAINING_RECORD(jsdisp, DateInstance, dispex);
|
||||||
|
}
|
||||||
|
|
||||||
static inline DateInstance *date_this(vdisp_t *jsthis)
|
static inline DateInstance *date_this(vdisp_t *jsthis)
|
||||||
{
|
{
|
||||||
return is_vclass(jsthis, JSCLASS_DATE) ? (DateInstance*)jsthis->u.jsdisp : NULL;
|
return is_vclass(jsthis, JSCLASS_DATE) ? date_from_jsdisp(jsthis->u.jsdisp) : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*ECMA-262 3rd Edition 15.9.1.2 */
|
/*ECMA-262 3rd Edition 15.9.1.2 */
|
||||||
@ -1917,11 +1922,11 @@ static HRESULT Date_setYear(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsi
|
|||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT Date_get_value(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT Date_get_value(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
|
|
||||||
return dateobj_to_string((DateInstance*)jsthis->u.jsdisp, r);
|
return dateobj_to_string(date_from_jsdisp(jsthis), r);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const builtin_prop_t Date_props[] = {
|
static const builtin_prop_t Date_props[] = {
|
||||||
|
@ -421,11 +421,7 @@ static HRESULT prop_get(jsdisp_t *This, dispex_prop_t *prop, DISPPARAMS *dp,
|
|||||||
switch(prop->type) {
|
switch(prop->type) {
|
||||||
case PROP_BUILTIN:
|
case PROP_BUILTIN:
|
||||||
if(prop->u.p->getter) {
|
if(prop->u.p->getter) {
|
||||||
vdisp_t vthis;
|
hres = prop->u.p->getter(This->ctx, This, r);
|
||||||
|
|
||||||
set_jsdisp(&vthis, This);
|
|
||||||
hres = prop->u.p->getter(This->ctx, &vthis, r);
|
|
||||||
vdisp_release(&vthis);
|
|
||||||
}else {
|
}else {
|
||||||
jsdisp_t *obj;
|
jsdisp_t *obj;
|
||||||
|
|
||||||
|
@ -43,9 +43,14 @@ typedef struct {
|
|||||||
jsdisp_t *var_obj;
|
jsdisp_t *var_obj;
|
||||||
} ArgumentsInstance;
|
} ArgumentsInstance;
|
||||||
|
|
||||||
|
static inline FunctionInstance *function_from_jsdisp(jsdisp_t *jsdisp)
|
||||||
|
{
|
||||||
|
return CONTAINING_RECORD(jsdisp, FunctionInstance, dispex);
|
||||||
|
}
|
||||||
|
|
||||||
static inline FunctionInstance *function_from_vdisp(vdisp_t *vdisp)
|
static inline FunctionInstance *function_from_vdisp(vdisp_t *vdisp)
|
||||||
{
|
{
|
||||||
return (FunctionInstance*)vdisp->u.jsdisp;
|
return function_from_jsdisp(vdisp->u.jsdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline FunctionInstance *function_this(vdisp_t *jsthis)
|
static inline FunctionInstance *function_this(vdisp_t *jsthis)
|
||||||
@ -362,13 +367,11 @@ HRESULT Function_invoke(jsdisp_t *func_this, IDispatch *jsthis, WORD flags, unsi
|
|||||||
return invoke_source(function->dispex.ctx, function, jsthis, argc, argv, r);
|
return invoke_source(function->dispex.ctx, function, jsthis, argc, argv, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT Function_get_length(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT Function_get_length(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
FunctionInstance *This = function_from_vdisp(jsthis);
|
TRACE("%p\n", jsthis);
|
||||||
|
|
||||||
TRACE("%p %d\n", This, This->length);
|
*r = jsval_number(function_from_jsdisp(jsthis)->length);
|
||||||
|
|
||||||
*r = jsval_number(This->length);
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -538,15 +541,14 @@ HRESULT Function_value(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned
|
|||||||
return invoke_value_proc(ctx, function, NULL, flags, argc, argv, r);
|
return invoke_value_proc(ctx, function, NULL, flags, argc, argv, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT Function_get_value(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
HRESULT Function_get_value(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
FunctionInstance *function = (FunctionInstance*)jsthis->u.jsdisp;
|
|
||||||
jsstr_t *str;
|
jsstr_t *str;
|
||||||
HRESULT hres;
|
HRESULT hres;
|
||||||
|
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
|
|
||||||
hres = function_to_string(function, &str);
|
hres = function_to_string(function_from_jsdisp(jsthis), &str);
|
||||||
if(FAILED(hres))
|
if(FAILED(hres))
|
||||||
return hres;
|
return hres;
|
||||||
|
|
||||||
@ -554,9 +556,9 @@ HRESULT Function_get_value(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
|||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT Function_get_arguments(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT Function_get_arguments(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
FunctionInstance *function = (FunctionInstance*)jsthis->u.jsdisp;
|
FunctionInstance *function = function_from_jsdisp(jsthis);
|
||||||
|
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
|
|
||||||
|
@ -187,7 +187,7 @@ static inline jsdisp_t *get_jsdisp(vdisp_t *vdisp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
typedef HRESULT (*builtin_invoke_t)(script_ctx_t*,vdisp_t*,WORD,unsigned,jsval_t*,jsval_t*);
|
typedef HRESULT (*builtin_invoke_t)(script_ctx_t*,vdisp_t*,WORD,unsigned,jsval_t*,jsval_t*);
|
||||||
typedef HRESULT (*builtin_getter_t)(script_ctx_t*,vdisp_t*,jsval_t*);
|
typedef HRESULT (*builtin_getter_t)(script_ctx_t*,jsdisp_t*,jsval_t*);
|
||||||
typedef HRESULT (*builtin_setter_t)(script_ctx_t*,vdisp_t*,jsval_t);
|
typedef HRESULT (*builtin_setter_t)(script_ctx_t*,vdisp_t*,jsval_t);
|
||||||
|
|
||||||
HRESULT builtin_set_const(script_ctx_t*,vdisp_t*,jsval_t) DECLSPEC_HIDDEN;
|
HRESULT builtin_set_const(script_ctx_t*,vdisp_t*,jsval_t) DECLSPEC_HIDDEN;
|
||||||
@ -296,7 +296,7 @@ HRESULT create_builtin_constructor(script_ctx_t*,builtin_invoke_t,const WCHAR*,c
|
|||||||
HRESULT Function_invoke(jsdisp_t*,IDispatch*,WORD,unsigned,jsval_t*,jsval_t*) DECLSPEC_HIDDEN;
|
HRESULT Function_invoke(jsdisp_t*,IDispatch*,WORD,unsigned,jsval_t*,jsval_t*) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
HRESULT Function_value(script_ctx_t*,vdisp_t*,WORD,unsigned,jsval_t*,jsval_t*) DECLSPEC_HIDDEN;
|
HRESULT Function_value(script_ctx_t*,vdisp_t*,WORD,unsigned,jsval_t*,jsval_t*) DECLSPEC_HIDDEN;
|
||||||
HRESULT Function_get_value(script_ctx_t*,vdisp_t*,jsval_t*) DECLSPEC_HIDDEN;
|
HRESULT Function_get_value(script_ctx_t*,jsdisp_t*,jsval_t*) DECLSPEC_HIDDEN;
|
||||||
#define DEFAULT_FUNCTION_VALUE {NULL, Function_value,0, Function_get_value}
|
#define DEFAULT_FUNCTION_VALUE {NULL, Function_value,0, Function_get_value}
|
||||||
|
|
||||||
HRESULT throw_eval_error(script_ctx_t*,HRESULT,const WCHAR*) DECLSPEC_HIDDEN;
|
HRESULT throw_eval_error(script_ctx_t*,HRESULT,const WCHAR*) DECLSPEC_HIDDEN;
|
||||||
|
@ -58,9 +58,14 @@ static const WCHAR idx7W[] = {'$','7',0};
|
|||||||
static const WCHAR idx8W[] = {'$','8',0};
|
static const WCHAR idx8W[] = {'$','8',0};
|
||||||
static const WCHAR idx9W[] = {'$','9',0};
|
static const WCHAR idx9W[] = {'$','9',0};
|
||||||
|
|
||||||
|
static inline RegExpInstance *regexp_from_jsdisp(jsdisp_t *jsdisp)
|
||||||
|
{
|
||||||
|
return CONTAINING_RECORD(jsdisp, RegExpInstance, dispex);
|
||||||
|
}
|
||||||
|
|
||||||
static inline RegExpInstance *regexp_from_vdisp(vdisp_t *vdisp)
|
static inline RegExpInstance *regexp_from_vdisp(vdisp_t *vdisp)
|
||||||
{
|
{
|
||||||
return (RegExpInstance*)vdisp->u.jsdisp;
|
return regexp_from_jsdisp(vdisp->u.jsdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void set_last_index(RegExpInstance *This, DWORD last_index)
|
static void set_last_index(RegExpInstance *This, DWORD last_index)
|
||||||
@ -243,13 +248,11 @@ static HRESULT regexp_match(script_ctx_t *ctx, jsdisp_t *dispex, jsstr_t *jsstr,
|
|||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT RegExp_get_source(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT RegExp_get_source(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
RegExpInstance *This = regexp_from_vdisp(jsthis);
|
|
||||||
|
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
|
|
||||||
*r = jsval_string(jsstr_addref(This->str));
|
*r = jsval_string(jsstr_addref(regexp_from_jsdisp(jsthis)->str));
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -259,7 +262,7 @@ static HRESULT RegExp_set_source(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t val
|
|||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT RegExp_get_global(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT RegExp_get_global(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
FIXME("\n");
|
FIXME("\n");
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
@ -271,7 +274,7 @@ static HRESULT RegExp_set_global(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t val
|
|||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT RegExp_get_ignoreCase(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT RegExp_get_ignoreCase(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
FIXME("\n");
|
FIXME("\n");
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
@ -283,7 +286,7 @@ static HRESULT RegExp_set_ignoreCase(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t
|
|||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT RegExp_get_multiline(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT RegExp_get_multiline(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
FIXME("\n");
|
FIXME("\n");
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
@ -310,9 +313,9 @@ static INT index_from_val(script_ctx_t *ctx, jsval_t v)
|
|||||||
return is_int32(n) ? n : 0;
|
return is_int32(n) ? n : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT RegExp_get_lastIndex(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT RegExp_get_lastIndex(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
RegExpInstance *regexp = regexp_from_vdisp(jsthis);
|
RegExpInstance *regexp = regexp_from_jsdisp(jsthis);
|
||||||
|
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
|
|
||||||
@ -854,61 +857,61 @@ static HRESULT global_idx(script_ctx_t *ctx, DWORD idx, jsval_t *r)
|
|||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT RegExpConstr_get_idx1(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT RegExpConstr_get_idx1(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
return global_idx(ctx, 0, r);
|
return global_idx(ctx, 0, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT RegExpConstr_get_idx2(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT RegExpConstr_get_idx2(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
return global_idx(ctx, 1, r);
|
return global_idx(ctx, 1, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT RegExpConstr_get_idx3(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT RegExpConstr_get_idx3(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
return global_idx(ctx, 2, r);
|
return global_idx(ctx, 2, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT RegExpConstr_get_idx4(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT RegExpConstr_get_idx4(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
return global_idx(ctx, 3, r);
|
return global_idx(ctx, 3, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT RegExpConstr_get_idx5(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT RegExpConstr_get_idx5(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
return global_idx(ctx, 4, r);
|
return global_idx(ctx, 4, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT RegExpConstr_get_idx6(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT RegExpConstr_get_idx6(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
return global_idx(ctx, 5, r);
|
return global_idx(ctx, 5, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT RegExpConstr_get_idx7(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT RegExpConstr_get_idx7(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
return global_idx(ctx, 6, r);
|
return global_idx(ctx, 6, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT RegExpConstr_get_idx8(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT RegExpConstr_get_idx8(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
return global_idx(ctx, 7, r);
|
return global_idx(ctx, 7, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT RegExpConstr_get_idx9(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT RegExpConstr_get_idx9(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
return global_idx(ctx, 8, r);
|
return global_idx(ctx, 8, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT RegExpConstr_get_leftContext(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT RegExpConstr_get_leftContext(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
jsstr_t *ret;
|
jsstr_t *ret;
|
||||||
|
|
||||||
@ -922,7 +925,7 @@ static HRESULT RegExpConstr_get_leftContext(script_ctx_t *ctx, vdisp_t *jsthis,
|
|||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT RegExpConstr_get_rightContext(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT RegExpConstr_get_rightContext(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
jsstr_t *ret;
|
jsstr_t *ret;
|
||||||
|
|
||||||
|
@ -44,9 +44,14 @@ static const WCHAR valueOfW[] = {'v','a','l','u','e','O','f',0};
|
|||||||
#define NUMBER_TOSTRING_BUF_SIZE 64
|
#define NUMBER_TOSTRING_BUF_SIZE 64
|
||||||
#define NUMBER_DTOA_SIZE 18
|
#define NUMBER_DTOA_SIZE 18
|
||||||
|
|
||||||
|
static inline NumberInstance *number_from_jsdisp(jsdisp_t *jsdisp)
|
||||||
|
{
|
||||||
|
return CONTAINING_RECORD(jsdisp, NumberInstance, dispex);
|
||||||
|
}
|
||||||
|
|
||||||
static inline NumberInstance *number_from_vdisp(vdisp_t *vdisp)
|
static inline NumberInstance *number_from_vdisp(vdisp_t *vdisp)
|
||||||
{
|
{
|
||||||
return (NumberInstance*)vdisp->u.jsdisp;
|
return number_from_jsdisp(vdisp->u.jsdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline NumberInstance *number_this(vdisp_t *jsthis)
|
static inline NumberInstance *number_this(vdisp_t *jsthis)
|
||||||
@ -500,9 +505,9 @@ static HRESULT Number_valueOf(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, un
|
|||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT Number_get_value(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT Number_get_value(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
NumberInstance *number = number_from_vdisp(jsthis);
|
NumberInstance *number = number_from_jsdisp(jsthis);
|
||||||
|
|
||||||
TRACE("(%p)\n", number);
|
TRACE("(%p)\n", number);
|
||||||
|
|
||||||
|
@ -207,7 +207,7 @@ static HRESULT Object_isPrototypeOf(script_ctx_t *ctx, vdisp_t *jsthis, WORD fla
|
|||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT Object_get_value(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT Object_get_value(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
jsstr_t *ret;
|
jsstr_t *ret;
|
||||||
|
|
||||||
|
@ -68,9 +68,14 @@ static const WCHAR toLocaleUpperCaseW[] = {'t','o','L','o','c','a','l','e','U','
|
|||||||
static const WCHAR localeCompareW[] = {'l','o','c','a','l','e','C','o','m','p','a','r','e',0};
|
static const WCHAR localeCompareW[] = {'l','o','c','a','l','e','C','o','m','p','a','r','e',0};
|
||||||
static const WCHAR fromCharCodeW[] = {'f','r','o','m','C','h','a','r','C','o','d','e',0};
|
static const WCHAR fromCharCodeW[] = {'f','r','o','m','C','h','a','r','C','o','d','e',0};
|
||||||
|
|
||||||
|
static inline StringInstance *string_from_jsdisp(jsdisp_t *jsdisp)
|
||||||
|
{
|
||||||
|
return CONTAINING_RECORD(jsdisp, StringInstance, dispex);
|
||||||
|
}
|
||||||
|
|
||||||
static inline StringInstance *string_from_vdisp(vdisp_t *vdisp)
|
static inline StringInstance *string_from_vdisp(vdisp_t *vdisp)
|
||||||
{
|
{
|
||||||
return (StringInstance*)vdisp->u.jsdisp;
|
return string_from_jsdisp(vdisp->u.jsdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline StringInstance *string_this(vdisp_t *jsthis)
|
static inline StringInstance *string_this(vdisp_t *jsthis)
|
||||||
@ -106,9 +111,9 @@ static HRESULT get_string_flat_val(script_ctx_t *ctx, vdisp_t *jsthis, jsstr_t *
|
|||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT String_get_length(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT String_get_length(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
StringInstance *string = string_from_vdisp(jsthis);
|
StringInstance *string = (StringInstance*)jsthis;
|
||||||
|
|
||||||
TRACE("%p\n", jsthis);
|
TRACE("%p\n", jsthis);
|
||||||
|
|
||||||
@ -1467,9 +1472,9 @@ static HRESULT String_localeCompare(script_ctx_t *ctx, vdisp_t *jsthis, WORD fla
|
|||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT String_get_value(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
|
static HRESULT String_get_value(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
|
||||||
{
|
{
|
||||||
StringInstance *This = string_from_vdisp(jsthis);
|
StringInstance *This = (StringInstance*)jsthis;
|
||||||
|
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user