58#define MIN_BLOCK_SIZE 128
59#define ARENA_FREE_FILLER 0xaa
77 if(!
heap->block_cnt) {
88 heap->blocks[0] = tmp;
99 if(
heap->last_block+1 ==
heap->block_cnt) {
114 return heap->blocks[
heap->last_block];
156 for(
i=0;
i <
heap->block_cnt;
i++)
160 heap->last_block =
heap->offset = 0;
170 for(
i=0;
i <
heap->block_cnt;
i++)
294 hres = IDispatch_QueryInterface(
V_DISPATCH(
var), &IID_IWineJSDispatchHost, (
void **)&disp_host);
297 hres = IWineJSDispatchHost_GetJSDispatch(disp_host, &jsdisp_iface);
298 IWineJSDispatchHost_Release(disp_host);
444 WARN(
"call error - forwarding exception\n");
463 WARN(
"call error - forwarding exception\n");
517#if defined(__REACTOS__) && defined(__clang__)
523 if(
'0' <=
c &&
c <=
'9')
526 if(
'a' <=
c &&
c <=
'f')
529 if(
'A' <=
c &&
c <=
'F')
542 static const WCHAR infinityW[] =
L"Infinity";
554 }
else if(*
ptr ==
'+') {
570 if(*
ptr ==
'0' &&
ptr[1] ==
'x') {
584 d =
d*10 + (*
ptr++ -
'0');
586 if(*
ptr ==
'e' || *
ptr ==
'E') {
594 }
else if(*
ptr ==
'+') {
599 l =
l*10 + (*
ptr++ -
'0');
604 }
else if(*
ptr ==
'.') {
708 if(exp < 0 || exp > 83)
725 result &= missing_one - 1;
886 IDispatch_AddRef(*disp);
900 WARN(
"object expected\n");
976 V_BOOL(
dst) =
b ? VARIANT_TRUE : VARIANT_FALSE;
1007 FIXME(
"vt %d not implemented\n",
vt);
1031 *
ppv = &
This->IServiceProvider_iface;
1034 *
ppv = &
This->IServiceProvider_iface;
1075 if(
IsEqualGUID(guidService, &IID_IActiveScriptSite)) {
1076 TRACE(
"(%p)->(IID_IActiveScriptSite)\n",
This);
1078 return IActiveScriptSite_QueryInterface(
This->ctx->site,
riid,
ppv);
1091 if(
IsEqualGUID(guidService, &SID_VariantConversion) &&
This->ctx &&
This->ctx->active_script) {
1092 TRACE(
"(%p)->(SID_VariantConversion)\n",
This);
1093 return IActiveScript_QueryInterface(
This->ctx->active_script,
riid,
ppv);
ios_base &_STLP_CALL dec(ios_base &__s)
COMPILER_DEPENDENT_INT64 INT64
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static void list_add_head(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
HRESULT create_bool(script_ctx_t *ctx, BOOL bval, jsdisp_t **ret)
static BOOL get_bool(D3DXPARAMETER_TYPE type, const void *data)
const char * wine_dbg_sprintf(const char *format,...)
#define WINE_DECLARE_DEBUG_CHANNEL(x)
HRESULT variant_date_to_string(script_ctx_t *ctx, double date, jsstr_t **r)
HRESULT variant_date_to_number(double date, double *ret)
static REFPROPVARIANT PROPVAR_CHANGE_FLAGS VARTYPE vt
_ACRTIMP errno_t __cdecl _ltow_s(__msvcrt_long, wchar_t *, size_t, int)
_ACRTIMP int __cdecl wcsncmp(const wchar_t *, const wchar_t *, size_t)
_ACRTIMP double __cdecl floor(double)
static const char * debugstr_variant(const VARIANT *var)
HRESULT leave_script(script_ctx_t *, HRESULT)
void enter_script(script_ctx_t *, jsexcept_t *)
double pow(double x, double y)
GLdouble GLdouble GLdouble r
GLboolean GLboolean GLboolean b
GLenum GLuint GLenum GLsizei const GLchar * buf
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
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
HRESULT jsdisp_call(jsdisp_t *disp, DISPID id, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r)
HRESULT disp_propget(script_ctx_t *ctx, IDispatch *disp, DISPID id, jsval_t *val)
HRESULT jsdisp_get_id(jsdisp_t *jsdisp, const WCHAR *name, DWORD flags, DISPID *id)
jsdisp_t * iface_to_jsdisp(IDispatch *iface)
ULONG jsdisp_release(jsdisp_t *obj)
IWineJSDispatchHost * get_host_dispatch(IDispatch *disp)
jsdisp_t * to_jsdisp(IDispatch *disp)
HRESULT create_string(script_ctx_t *, jsstr_t *, jsdisp_t **)
#define JS_E_OBJECT_REQUIRED
#define JS_E_OBJECT_EXPECTED
#define SP_CALLER_UNINITIALIZED
HRESULT create_vbarray(script_ctx_t *, SAFEARRAY *, jsdisp_t **)
HRESULT create_number(script_ctx_t *, double, jsdisp_t **)
#define SCRIPTLANGUAGEVERSION_ES5
static BOOL is_int32(double d)
static IDispatch * to_disp(jsdisp_t *jsdisp)
#define JS_E_TO_PRIMITIVE
static BOOL is_class(jsdisp_t *jsdisp, jsclass_t class)
jsstr_t * jsstr_null_bstr(void)
HRESULT jsstr_to_bstr(jsstr_t *str, BSTR *r)
jsstr_t * jsstr_alloc_len(const WCHAR *buf, unsigned len)
jsstr_t * jsstr_nan(void)
jsstr_t * jsstr_undefined(void)
const char * debugstr_jsstr(jsstr_t *str)
static jsstr_t * jsstr_addref(jsstr_t *str)
static const WCHAR * jsstr_flatten(jsstr_t *str)
static void jsstr_release(jsstr_t *str)
static unsigned jsstr_length(jsstr_t *str)
static jsstr_t * jsstr_alloc(const WCHAR *str)
HRESULT create_jscaller(script_ctx_t *ctx)
void * heap_pool_alloc(heap_pool_t *heap, DWORD size)
HRESULT to_long(script_ctx_t *ctx, jsval_t v, LONG *ret)
static HRESULT WINAPI JSCaller_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
HRESULT to_boolean(jsval_t val, BOOL *ret)
void heap_pool_init(heap_pool_t *heap)
static HRESULT str_to_number(jsstr_t *str, double *ret)
HRESULT variant_change_type(script_ctx_t *ctx, VARIANT *dst, VARIANT *src, VARTYPE vt)
heap_pool_t * heap_pool_mark(heap_pool_t *heap)
static HRESULT jsval_variant(jsval_t *val, VARIANT *var)
static HRESULT WINAPI JSCaller_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
HRESULT jsval_copy(jsval_t v, jsval_t *r)
HRESULT to_flat_string(script_ctx_t *ctx, jsval_t val, jsstr_t **str, const WCHAR **ret_str)
HRESULT variant_to_jsval(script_ctx_t *ctx, VARIANT *var, jsval_t *r)
static ULONG WINAPI JSCaller_Release(IServiceProvider *iface)
static ULONG WINAPI JSCaller_AddRef(IServiceProvider *iface)
void * heap_pool_grow(heap_pool_t *heap, void *mem, DWORD size, DWORD inc)
HRESULT to_object(script_ctx_t *ctx, jsval_t val, IDispatch **disp)
#define ARENA_FREE_FILLER
static INT32 double_to_int32(double number)
HRESULT to_uint32(script_ctx_t *ctx, jsval_t val, UINT32 *ret)
HRESULT to_string(script_ctx_t *ctx, jsval_t val, jsstr_t **str)
static DWORD block_size(DWORD block)
void heap_pool_free(heap_pool_t *heap)
const char * debugstr_jsval(const jsval_t v)
void heap_pool_clear(heap_pool_t *heap)
static JSCaller * impl_from_IServiceProvider(IServiceProvider *iface)
HRESULT double_to_string(double n, jsstr_t **str)
HRESULT to_number(script_ctx_t *ctx, jsval_t val, double *ret)
HRESULT to_primitive(script_ctx_t *ctx, jsval_t val, jsval_t *ret, hint_t hint)
static const IServiceProviderVtbl ServiceProviderVtbl
HRESULT to_integer(script_ctx_t *ctx, jsval_t v, double *ret)
void jsval_release(jsval_t val)
HRESULT jsval_to_variant(jsval_t val, VARIANT *retv)
HRESULT to_int32(script_ctx_t *ctx, jsval_t v, INT *ret)
static int hex_to_int(WCHAR c)
static VARIANT * get_variant(jsval_t v)
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 jsval_type_t jsval_type(jsval_t v)
static BOOL is_null_disp(jsval_t v)
static jsstr_t * get_string(jsval_t v)
static jsval_t jsval_null_disp(void)
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 jsval_t jsval_number(double n)
#define memcpy(s1, s2, n)
static unsigned int number
static VARIANTARG static DISPID
#define MAKELCID(lgid, srtid)
UINT WINAPI SysStringLen(BSTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
#define IsEqualGUID(rguid1, rguid2)
#define SUBLANG_ENGLISH_US
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI VariantChangeTypeEx(VARIANTARG *pvargDest, VARIANTARG *pvargSrc, LCID lcid, USHORT wFlags, VARTYPE vt)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
HRESULT WINAPI VariantCopy(VARIANTARG *pvargDest, VARIANTARG *pvargSrc)
#define DISP_E_UNKNOWNNAME
static unsigned int block