21 #include <wine/port.h> 63 #define MIN_BLOCK_SIZE 128 64 #define ARENA_FREE_FILLER 0xaa 73 memset(heap, 0,
sizeof(*heap));
412 static const WCHAR toStringW[] = {
't',
'o',
'S',
't',
'r',
'i',
'n',
'g',0};
413 static const WCHAR valueOfW[] = {
'v',
'a',
'l',
'u',
'e',
'O',
'f',0};
433 WARN(
"call error - forwarding exception\n");
449 WARN(
"call error - forwarding exception\n");
502 if(
'0' <=
c &&
c <=
'9')
505 if(
'a' <=
c &&
c <=
'f')
508 if(
'A' <=
c &&
c <=
'F')
521 static const WCHAR infinityW[] = {
'I',
'n',
'f',
'i',
'n',
'i',
't',
'y'};
533 }
else if(*
ptr ==
'+') {
549 if(*
ptr ==
'0' &&
ptr[1] ==
'x') {
563 d =
d*10 + (*
ptr++ -
'0');
565 if(*
ptr ==
'e' || *
ptr ==
'E') {
573 }
else if(*
ptr ==
'+') {
578 l =
l*10 + (*
ptr++ -
'0');
583 }
else if(*
ptr ==
'.') {
670 const double p32 = (
double)0xffffffff + 1;
703 static const WCHAR zeroW[] = {
'0',0};
729 static const WCHAR InfinityW[] = {
'-',
'I',
'n',
'f',
'i',
'n',
'i',
't',
'y',0};
759 static const WCHAR nullW[] = {
'n',
'u',
'l',
'l',0};
760 static const WCHAR trueW[] = {
't',
'r',
'u',
'e',0};
761 static const WCHAR falseW[] = {
'f',
'a',
'l',
's',
'e',0};
839 IDispatch_AddRef(*disp);
859 WARN(
"object expected\n");
933 V_BOOL(
dst) =
b ? VARIANT_TRUE : VARIANT_FALSE;
962 FIXME(
"vt %d not implemented\n",
vt);
985 *
ppv = &
This->IServiceProvider_iface;
988 *
ppv = &
This->IServiceProvider_iface;
1029 if(
IsEqualGUID(guidService, &SID_VariantConversion) &&
This->ctx &&
This->ctx->active_script) {
1030 TRACE(
"(%p)->(SID_VariantConversion)\n",
This);
1031 return IActiveScript_QueryInterface(
This->ctx->active_script,
riid,
ppv);
static unsigned int block
jsstr_t * jsstr_alloc_len(const WCHAR *buf, unsigned len)
jsstr_t * jsstr_nan(void)
static jsstr_t * jsstr_alloc(const WCHAR *str)
static const IServiceProviderVtbl ServiceProviderVtbl
static const WCHAR * jsstr_flatten(jsstr_t *str)
void jsval_release(jsval_t val)
#define MAKELCID(lgid, srtid)
static HRESULT str_to_number(jsstr_t *str, double *ret)
jsstr_t * jsstr_null_bstr(void)
void heap_pool_clear(heap_pool_t *heap)
static ULONG WINAPI JSCaller_AddRef(IServiceProvider *iface)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
jsstr_t * jsstr_undefined(void)
#define ARENA_FREE_FILLER
static jsval_t jsval_null(void)
static IDispatch * get_object(jsval_t v)
static jsstr_t * jsstr_addref(jsstr_t *str)
GLdouble GLdouble GLdouble r
HRESULT double_to_string(double n, jsstr_t **str)
HRESULT create_string(script_ctx_t *, jsstr_t *, jsdisp_t **) DECLSPEC_HIDDEN
__WINE_SERVER_LIST_INLINE void list_add_head(struct list *list, struct list *elem)
static const WCHAR toStringW[]
static unsigned jsstr_flush(jsstr_t *str, WCHAR *buf)
ios_base &_STLP_CALL dec(ios_base &__s)
WINE_DECLARE_DEBUG_CHANNEL(heap)
static unsigned jsstr_length(jsstr_t *str)
static void jsstr_release(jsstr_t *str)
HRESULT to_primitive(script_ctx_t *ctx, jsval_t val, jsval_t *ret, hint_t hint)
void clear_ei(script_ctx_t *ctx)
static const WCHAR valueOfW[]
void heap_pool_free(heap_pool_t *heap)
static void * heap_realloc(void *mem, size_t len)
static void * heap_alloc(size_t len)
#define SUBLANG_ENGLISH_US
#define JS_E_TO_PRIMITIVE
static DWORD block_size(DWORD block)
HRESULT jsdisp_call(jsdisp_t *disp, DISPID id, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
GLsizei GLsizei GLuint * obj
__WINE_SERVER_LIST_INLINE struct list * list_head(const struct list *list)
heap_pool_t * heap_pool_mark(heap_pool_t *heap)
const char * wine_dbg_sprintf(const char *format,...)
GLenum GLuint GLenum GLsizei const GLchar * buf
static HRESULT WINAPI JSCaller_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
HRESULT to_boolean(jsval_t val, BOOL *ret)
HRESULT create_jscaller(script_ctx_t *ctx)
float pow(float __x, int __y)
HRESULT jsval_copy(jsval_t v, jsval_t *r)
static BOOL is_class(jsdisp_t *jsdisp, jsclass_t class)
static jsstr_t * get_string(jsval_t v)
HRESULT to_object(script_ctx_t *ctx, jsval_t val, IDispatch **disp)
static BOOL get_bool(D3DXPARAMETER_TYPE type, const void *data)
HRESULT to_string(script_ctx_t *ctx, jsval_t val, jsstr_t **str)
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
HRESULT disp_propget(script_ctx_t *ctx, IDispatch *disp, DISPID id, jsval_t *val)
void * heap_pool_alloc(heap_pool_t *heap, DWORD size)
HRESULT jsval_to_variant(jsval_t val, VARIANT *retv)
static BOOL is_object_instance(jsval_t v)
HRESULT variant_to_jsval(VARIANT *var, jsval_t *r)
static jsval_t jsval_string(jsstr_t *str)
HRESULT create_number(script_ctx_t *, double, jsdisp_t **) DECLSPEC_HIDDEN
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
static int hex_to_int(WCHAR c)
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
_Check_return_ double __cdecl fmod(_In_ double x, _In_ double y)
GLboolean GLboolean GLboolean b
const char * debugstr_jsstr(jsstr_t *str)
static jsval_t jsval_disp(IDispatch *obj)
HRESULT create_bool(script_ctx_t *ctx, BOOL b, jsdisp_t **ret)
static const WCHAR falseW[]
static REFPROPVARIANT PROPVAR_CHANGE_FLAGS VARTYPE vt
HRESULT to_uint32(script_ctx_t *ctx, jsval_t val, UINT32 *ret)
_Check_return_ _CRTIMP int __cdecl wcsncmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
static VARIANT * get_variant(jsval_t v)
static double get_number(jsval_t v)
static HRESULT jsval_variant(jsval_t *val, VARIANT *var)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
HRESULT to_flat_string(script_ctx_t *ctx, jsval_t val, jsstr_t **str, const WCHAR **ret_str)
static jsval_type_t jsval_type(jsval_t v)
const char * debugstr_jsval(const jsval_t v)
struct list custom_blocks
#define memcpy(s1, s2, n)
HRESULT to_int32(script_ctx_t *ctx, jsval_t v, INT *ret)
HRESULT jsdisp_get_id(jsdisp_t *jsdisp, const WCHAR *name, DWORD flags, DISPID *id)
UINT WINAPI SysStringLen(BSTR str)
static IDispatch * to_disp(jsdisp_t *jsdisp)
jsdisp_t * iface_to_jsdisp(IDispatch *iface)
static jsval_t jsval_undefined(void)
static const char * debugstr_variant(const VARIANT *var)
static VARIANTARG static DISPID
#define InterlockedIncrement
static JSCaller * impl_from_IServiceProvider(IServiceProvider *iface)
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
BOOL is_null_bstr(jsstr_t *str)
WINE_DEFAULT_DEBUG_CHANNEL(jscript)
static jsstr_t * int_to_string(int i)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
HRESULT variant_change_type(script_ctx_t *ctx, VARIANT *dst, VARIANT *src, VARTYPE vt)
static void jsdisp_release(jsdisp_t *jsdisp)
static const WCHAR InfinityW[]
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
void heap_pool_init(heap_pool_t *heap)
void * heap_pool_grow(heap_pool_t *heap, void *mem, DWORD size, DWORD inc)
HRESULT to_number(script_ctx_t *ctx, jsval_t val, double *ret)
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
HRESULT create_object(script_ctx_t *, jsdisp_t *, jsdisp_t **) DECLSPEC_HIDDEN
HRESULT throw_type_error(script_ctx_t *ctx, HRESULT error, const WCHAR *str)
static jsval_t jsval_bool(BOOL b)
static ULONG WINAPI JSCaller_Release(IServiceProvider *iface)
static const WCHAR trueW[]
_Check_return_ _CRTIMP double __cdecl floor(_In_ double x)
HRESULT WINAPI VariantCopy(VARIANTARG *pvargDest, VARIANTARG *pvargSrc)
static HRESULT WINAPI JSCaller_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
HRESULT to_integer(script_ctx_t *ctx, jsval_t v, double *ret)
static BOOL is_int32(double d)
HRESULT create_vbarray(script_ctx_t *, SAFEARRAY *, jsdisp_t **) DECLSPEC_HIDDEN
#define JS_E_OBJECT_EXPECTED
static const WCHAR nullW[]
static jsval_t jsval_number(double n)
HRESULT WINAPI VariantChangeTypeEx(VARIANTARG *pvargDest, VARIANTARG *pvargSrc, LCID lcid, USHORT wFlags, VARTYPE vt)
static BOOL heap_free(void *mem)