51static const WCHAR toLocaleStringW[] = {
't',
'o',
'L',
'o',
'c',
'a',
'l',
'e',
'S',
't',
'r',
'i',
'n',
'g',0};
87 *jsthis = &
array->dispex;
135 TRACE(
"%p\n", jsthis);
174 for(
i=0;
i <
obj->length;
i++) {
260 str_tab = heap_alloc_zero(
length *
sizeof(*str_tab));
648 *
cmp =
n > 0.0 ? 1 : -1;
658 *
cmp =
d < -0.0 ? -1 : 0;
702 WARN(
"arg is not dispatch\n");
708 WARN(
"cmp_func is not a function\n");
723 vtab = heap_alloc_zero(
length *
sizeof(*vtab));
731 WARN(
"Could not get elem %d: %08x\n",
i,
hres);
750 tmpbuf = sorttab +
length;
761 sorttab[2*
i] = sorttab[2*
i+1];
762 sorttab[2*
i+1] = tmpv;
779 while(
a <
k &&
b < bend) {
785 sorttab[
i+
a+
b] = tmpbuf[
a];
788 sorttab[
i+
a+
b] = sorttab[
i+
k+
b];
892 if(add_args < delete_cnt) {
905 }
else if(add_args > delete_cnt) {
1061 jsval_t callback_args[3], mapped_value;
1070 FIXME(
"Could not get length\n");
1154 hres = IDispatchEx_DeleteMemberByDispID(vthis->
u.
dispex,
id);
1205 id =
id*10 + (*
ptr-
'0');
1212 if(
id >=
array->length)
1213 array->length =
id+1;
1286 case DISPATCH_CONSTRUCT: {
1335 if(object_prototype)
1369 static const WCHAR ArrayW[] = {
'A',
'r',
'r',
'a',
'y',0};
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
static const WCHAR forEachW[]
static const builtin_info_t ArrayConstr_info
static HRESULT ArrayConstr_isArray(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static ArrayInstance * array_from_jsdisp(jsdisp_t *jsdisp)
static const WCHAR shiftW[]
static const builtin_info_t ArrayInst_info
static HRESULT Array_sort(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const WCHAR indexOfW[]
static HRESULT alloc_array(script_ctx_t *ctx, jsdisp_t *object_prototype, ArrayInstance **ret)
static HRESULT Array_map(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static void Array_destructor(jsdisp_t *dispex)
static const WCHAR sliceW[]
static const builtin_info_t Array_info
static HRESULT Array_toString(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const WCHAR reverseW[]
static HRESULT Array_push(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const WCHAR lengthW[]
static const WCHAR joinW[]
HRESULT create_array(script_ctx_t *ctx, DWORD length, jsdisp_t **ret)
static ArrayInstance * array_this(vdisp_t *jsthis)
static HRESULT Array_concat(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static WCHAR * idx_to_str(DWORD idx, WCHAR *ptr)
static HRESULT Array_pop(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
HRESULT create_array_constr(script_ctx_t *ctx, jsdisp_t *object_prototype, jsdisp_t **ret)
static void Array_on_put(jsdisp_t *dispex, const WCHAR *name)
static const WCHAR toLocaleStringW[]
static HRESULT Array_unshift(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const WCHAR mapW[]
static const WCHAR unshiftW[]
static const WCHAR isArrayW[]
static const WCHAR concatW[]
static HRESULT ArrayConstr_value(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT Array_get_value(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
static HRESULT Array_splice(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT array_join(script_ctx_t *ctx, jsdisp_t *array, DWORD length, const WCHAR *sep, unsigned seplen, jsval_t *r)
static const builtin_prop_t ArrayInst_props[]
static HRESULT Array_toLocaleString(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT set_length(jsdisp_t *obj, DWORD length)
static const builtin_prop_t ArrayConstr_props[]
static const WCHAR default_separatorW[]
static const WCHAR toStringW[]
static HRESULT Array_indexOf(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const builtin_prop_t Array_props[]
static HRESULT Array_forEach(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const WCHAR popW[]
static const WCHAR spliceW[]
static HRESULT concat_array(jsdisp_t *array, ArrayInstance *obj, DWORD *len)
static const WCHAR pushW[]
static HRESULT Array_get_length(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t *r)
static HRESULT Array_reverse(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT Array_join(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static const WCHAR sortW[]
static ArrayInstance * array_from_vdisp(vdisp_t *vdisp)
static HRESULT Array_shift(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
static HRESULT concat_obj(jsdisp_t *array, IDispatch *obj, DWORD *len)
static HRESULT get_length(script_ctx_t *ctx, vdisp_t *vdisp, jsdisp_t **jsthis, DWORD *ret)
unsigned array_get_length(jsdisp_t *array)
static HRESULT Array_set_length(script_ctx_t *ctx, jsdisp_t *jsthis, jsval_t value)
static HRESULT sort_cmp(script_ctx_t *ctx, jsdisp_t *cmp_func, jsval_t v1, jsval_t v2, INT *cmp)
static HRESULT Array_slice(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
int(* cmp_func)(const void *ptr1, const void *ptr2)
HRESULT throw_type_error(script_ctx_t *ctx, HRESULT error, const WCHAR *str)
HRESULT throw_range_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)
HRESULT jsval_strict_equal(jsval_t lval, jsval_t rval, BOOL *ret)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLdouble GLdouble GLdouble r
GLboolean GLboolean GLboolean b
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
GLboolean GLboolean GLboolean GLboolean a
GLfloat GLfloat GLfloat v2
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
static HRESULT to_string(VARIANT *src, BSTR *dst)
_Check_return_ _CRTIMP double __cdecl floor(_In_ double x)
HRESULT jsdisp_call_value(jsdisp_t *jsfunc, IDispatch *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
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)
jsdisp_t * iface_to_jsdisp(IDispatch *iface)
HRESULT disp_call_value(script_ctx_t *ctx, IDispatch *disp, IDispatch *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
HRESULT jsdisp_delete_idx(jsdisp_t *obj, DWORD idx)
HRESULT jsdisp_get_idx(jsdisp_t *obj, DWORD idx, jsval_t *r)
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)
HRESULT jsdisp_propput_idx(jsdisp_t *obj, DWORD idx, jsval_t val)
HRESULT jsdisp_propget(jsdisp_t *jsdisp, DISPID id, jsval_t *val)
static const WCHAR ArrayW[]
static BOOL is_vclass(vdisp_t *vdisp, jsclass_t class)
#define DEFAULT_FUNCTION_VALUE
#define JS_E_JSCRIPT_EXPECTED
static void jsdisp_release(jsdisp_t *jsdisp)
HRESULT to_number(script_ctx_t *, jsval_t, double *) DECLSPEC_HIDDEN
static BOOL is_jsdisp(vdisp_t *vdisp)
static BOOL is_int32(double d)
HRESULT to_integer(script_ctx_t *, jsval_t, double *) DECLSPEC_HIDDEN
HRESULT to_uint32(script_ctx_t *, jsval_t, UINT32 *) DECLSPEC_HIDDEN
#define JS_E_ARRAY_EXPECTED
const char * debugstr_jsval(const jsval_t) DECLSPEC_HIDDEN
static jsdisp_t * jsdisp_addref(jsdisp_t *jsdisp)
HRESULT to_flat_string(script_ctx_t *, jsval_t, jsstr_t **, const WCHAR **) DECLSPEC_HIDDEN
static BOOL is_class(jsdisp_t *jsdisp, jsclass_t class)
#define JS_E_INVALID_LENGTH
int jsstr_cmp(jsstr_t *str1, jsstr_t *str2)
jsstr_t * jsstr_empty(void)
const char * debugstr_jsstr(jsstr_t *str)
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)
void jsval_release(jsval_t val)
static BOOL is_number(jsval_t v)
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 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)
#define memcpy(s1, s2, n)
static IPrintDialogCallback callback
#define eq(received, expected, label, type)
#define cmp(status, error)
static VARIANTARG static DISPID
static short search(int val, const short *table, int size)
#define CONTAINING_RECORD(address, type, field)
#define DISP_E_UNKNOWNNAME