28static const WCHAR toLocaleStringW[] = {
't',
'o',
'L',
'o',
'c',
'a',
'l',
'e',
'S',
't',
'r',
'i',
'n',
'g',0};
30static const WCHAR hasOwnPropertyW[] = {
'h',
'a',
's',
'O',
'w',
'n',
'P',
'r',
'o',
'p',
'e',
'r',
't',
'y',0};
32 {
'p',
'r',
'o',
'p',
'e',
'r',
't',
'y',
'I',
's',
'E',
'n',
'u',
'm',
'e',
'r',
'a',
'b',
'l',
'e',0};
33static const WCHAR isPrototypeOfW[] = {
'i',
's',
'P',
'r',
'o',
't',
'o',
't',
'y',
'p',
'e',
'O',
'f',0};
37 {
'g',
'e',
't',
'O',
'w',
'n',
'P',
'r',
'o',
'p',
'e',
'r',
't',
'y',
'D',
'e',
's',
'c',
'r',
'i',
'p',
't',
'o',
'r',0};
39 {
'g',
'e',
't',
'P',
'r',
'o',
't',
'o',
't',
'y',
'p',
'e',
'O',
'f',0};
40static const WCHAR definePropertyW[] = {
'd',
'e',
'f',
'i',
'n',
'e',
'P',
'r',
'o',
'p',
'e',
'r',
't',
'y',0};
42static const WCHAR definePropertiesW[] = {
'd',
'e',
'f',
'i',
'n',
'e',
'P',
'r',
'o',
'p',
'e',
'r',
't',
'i',
'e',
's',0};
44static const WCHAR default_valueW[] = {
'[',
'o',
'b',
'j',
'e',
'c',
't',
' ',
'O',
'b',
'j',
'e',
'c',
't',
']',0};
46static const WCHAR configurableW[] = {
'c',
'o',
'n',
'f',
'i',
'g',
'u',
'r',
'a',
'b',
'l',
'e',0};
47static const WCHAR enumerableW[] = {
'e',
'n',
'u',
'm',
'e',
'r',
'a',
'b',
'l',
'e',0};
59 static const WCHAR formatW[] = {
'[',
'o',
'b',
'j',
'e',
'c',
't',
' ',
'%',
's',
']',0};
61 static const WCHAR arrayW[] = {
'A',
'r',
'r',
'a',
'y',0};
62 static const WCHAR booleanW[] = {
'B',
'o',
'o',
'l',
'e',
'a',
'n',0};
63 static const WCHAR dateW[] = {
'D',
'a',
't',
'e',0};
64 static const WCHAR errorW[] = {
'E',
'r',
'r',
'o',
'r',0};
65 static const WCHAR functionW[] = {
'F',
'u',
'n',
'c',
't',
'i',
'o',
'n',0};
66 static const WCHAR mathW[] = {
'M',
'a',
't',
'h',0};
67 static const WCHAR numberW[] = {
'N',
'u',
'm',
'b',
'e',
'r',0};
68 static const WCHAR objectW[] = {
'O',
'b',
'j',
'e',
'c',
't',0};
69 static const WCHAR regexpW[] = {
'R',
'e',
'g',
'E',
'x',
'p',0};
70 static const WCHAR stringW[] = {
'S',
't',
'r',
'i',
'n',
'g',0};
109 FIXME(
"Host object this\n");
122 IDispatch_AddRef(jsthis->
u.
disp);
150 const WCHAR *name_str;
202 FIXME(
"Host object this\n");
274 if(
desc->explicit_value)
358 FIXME(
"getter is not an object\n");
365 FIXME(
"getter is not JS object\n");
382 FIXME(
"setter is not an object\n");
389 FIXME(
"setter is not JS object\n");
400 if(
desc->explicit_getter ||
desc->explicit_setter) {
401 if(
desc->explicit_value)
414 DISPID id = DISPID_STARTENUM;
427 FIXME(
"non-JS list obj\n");
428 IDispatch_Release(list_disp);
478 FIXME(
"not implemented non-JS object\n");
491 FIXME(
"not implemented non-JS object\n");
515 FIXME(
"not an object\n");
542 FIXME(
"not implemented non-JS object\n");
597 FIXME(
"Invalid arg\n");
607 FIXME(
"Non-JS prototype\n");
635 FIXME(
"invalid arguments\n");
643 FIXME(
"Non-JS object\n");
680 case DISPATCH_CONSTRUCT: {
694 IDispatch_Release(disp);
720 static const WCHAR ObjectW[] = {
'O',
'b',
'j',
'e',
'c',
't',0};
723 object_prototype,
ret);
736 object = heap_alloc_zero(
sizeof(
jsdisp_t));
static BOOL heap_free(void *mem)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
HRESULT throw_type_error(script_ctx_t *ctx, HRESULT error, const WCHAR *str)
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 HRESULT Object_create(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT Object_get_value(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
static const WCHAR createW[]
static const builtin_prop_t Object_props[]
static const WCHAR valueW[]
static const builtin_info_t Object_info
static const WCHAR valueOfW[]
static const builtin_prop_t ObjectConstr_props[]
static const WCHAR propertyIsEnumerableW[]
static HRESULT Object_toString(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const WCHAR getOwnPropertyDescriptorW[]
HRESULT create_object(script_ctx_t *ctx, jsdisp_t *constr, jsdisp_t **ret)
static HRESULT Object_propertyIsEnumerable(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT Object_getOwnPropertyDescriptor(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const WCHAR definePropertiesW[]
static const WCHAR hasOwnPropertyW[]
static const WCHAR writableW[]
HRESULT create_object_constr(script_ctx_t *ctx, jsdisp_t *object_prototype, jsdisp_t **ret)
HRESULT create_object_prototype(script_ctx_t *ctx, jsdisp_t **ret)
static HRESULT Object_defineProperties(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT ObjectConstr_value(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const WCHAR getW[]
static const WCHAR toLocaleStringW[]
static HRESULT Object_valueOf(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const WCHAR getPrototypeOfW[]
static HRESULT Object_defineProperty(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT Object_getPrototypeOf(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const builtin_info_t ObjectConstr_info
static const WCHAR default_valueW[]
static const WCHAR toStringW[]
static const builtin_info_t ObjectInst_info
static const WCHAR enumerableW[]
static HRESULT jsdisp_define_properties(script_ctx_t *ctx, jsdisp_t *obj, jsval_t list_val)
static const WCHAR definePropertyW[]
static const WCHAR isPrototypeOfW[]
static void release_property_descriptor(property_desc_t *desc)
static const WCHAR configurableW[]
static HRESULT Object_toLocaleString(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT Object_hasOwnProperty(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT Object_isPrototypeOf(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT to_property_descriptor(script_ctx_t *ctx, jsdisp_t *attr_obj, property_desc_t *desc)
static const WCHAR setW[]
static void Object_destructor(jsdisp_t *dispex)
static const WCHAR booleanW[]
static const WCHAR stringW[]
static const WCHAR objectW[]
static const WCHAR numberW[]
static const WCHAR functionW[]
GLdouble GLdouble GLdouble r
GLboolean GLboolean GLboolean b
static HRESULT to_string(VARIANT *src, BSTR *dst)
static const WCHAR errorW[]
HRESULT jsdisp_get_own_property(jsdisp_t *obj, const WCHAR *name, BOOL flags_only, property_desc_t *desc)
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_get_id(jsdisp_t *jsdisp, const WCHAR *name, DWORD flags, DISPID *id)
HRESULT init_dispex_from_constr(jsdisp_t *dispex, script_ctx_t *ctx, const builtin_info_t *builtin_info, jsdisp_t *constr)
HRESULT create_dispex(script_ctx_t *ctx, const builtin_info_t *builtin_info, jsdisp_t *prototype, jsdisp_t **dispex)
HRESULT jsdisp_call_name(jsdisp_t *disp, const WCHAR *name, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
jsdisp_t * to_jsdisp(IDispatch *disp)
HRESULT jsdisp_define_property(jsdisp_t *obj, const WCHAR *name, property_desc_t *desc)
HRESULT jsdisp_next_prop(jsdisp_t *obj, DISPID id, BOOL own_only, DISPID *ret)
HRESULT jsdisp_propget(jsdisp_t *jsdisp, DISPID id, jsval_t *val)
static const WCHAR ObjectW[]
#define DEFAULT_FUNCTION_VALUE
HRESULT to_object(script_ctx_t *, jsval_t, IDispatch **) DECLSPEC_HIDDEN
#define JS_E_OBJECT_EXPECTED
static void jsdisp_release(jsdisp_t *jsdisp)
#define PROPF_CONFIGURABLE
static BOOL is_jsdisp(vdisp_t *vdisp)
#define JS_E_INVALID_WRITABLE_PROP_DESC
static BOOL is_dispex(vdisp_t *vdisp)
static DWORD make_grfdex(script_ctx_t *ctx, DWORD flags)
static jsdisp_t * get_jsdisp(vdisp_t *vdisp)
const char * debugstr_jsval(const jsval_t) DECLSPEC_HIDDEN
static jsdisp_t * jsdisp_addref(jsdisp_t *jsdisp)
HRESULT to_boolean(jsval_t, BOOL *) DECLSPEC_HIDDEN
HRESULT to_flat_string(script_ctx_t *, jsval_t, jsstr_t **, const WCHAR **) DECLSPEC_HIDDEN
#define JS_E_PROP_DESC_MISMATCH
jsstr_t * jsstr_alloc_buf(unsigned len, WCHAR **buf)
static const WCHAR * jsstr_flatten(jsstr_t *str)
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)
void jsval_release(jsval_t val)
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 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 const WCHAR desc[]
static VARIANTARG static DISPID
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
IDispatchEx IDispatchEx_iface
const builtin_info_t * builtin_info
#define DISP_E_UNKNOWNNAME