Commit Graph

1282 Commits

Author SHA1 Message Date
Jacek Caban 6eaef96dad jscript: Reimplemented do_attribute_tag_format without direct access to object's string buffer. 2013-03-06 15:10:34 +01:00
Jacek Caban 25dbf32b5d jscript: Reimplemented do_attributeless_tag_format without direct access to object's string buffer. 2013-03-06 15:10:31 +01:00
Jacek Caban 895d059ebe jscript: Use jsstr_flush in String_concat. 2013-03-05 12:43:29 +01:00
Jacek Caban 88e78eb16e jscript: Use jsstr_flush in variant_change_type. 2013-03-05 12:43:26 +01:00
Jacek Caban 0eeb5c17b4 jscript: Use jsstr_flush in jsval_to_variant. 2013-03-05 12:43:24 +01:00
Jacek Caban 721d3ec1b4 jscript: Use jsstr_flush in jsstr_concat. 2013-03-05 12:43:22 +01:00
Jacek Caban 3f30c34827 jscript: Use jsstr_flush in construct_function. 2013-03-05 12:43:20 +01:00
Jacek Caban 55f67035c4 jscript: Use jsstr_flush in Error_toString. 2013-03-05 12:43:18 +01:00
Jacek Caban 29ff14493d jscript: Added jsstr_flush helper and use it in array_join. 2013-03-05 12:43:16 +01:00
Jacek Caban 20e85dd21b jscript: Use jsstr_substr in jsregexp.c where possible. 2013-03-04 11:19:30 +01:00
Jacek Caban 6e3895ad76 jscript: Added jsstr_substr helper and use it in String object implementation. 2013-03-04 11:19:27 +01:00
Jacek Caban ee880b28c5 jscript: Fixed BSTR leak. 2013-02-19 19:50:53 +01:00
Jacek Caban 1926b5617d jscript: Use to_int32 in to_uint32 implementation. 2013-02-19 19:50:53 +01:00
Piotr Caban f16c9877bd jscript: Avoid copying regular expression results. 2013-02-19 19:50:40 +01:00
Piotr Caban 67c7cc5517 jscript: Cleanup regular expressions engine API. 2013-02-19 19:50:36 +01:00
Piotr Caban 4c6a1d1d92 jscript: Rename JSREG_* defines to REG_*. 2013-02-19 13:47:57 +01:00
Piotr Caban 06e8d830e2 jscript: Moved generic regular expressions code to separate file. 2013-02-15 14:43:17 +01:00
Piotr Caban 5f06c6de28 jscript: Make context generic in internal regular expression functions. 2013-02-15 14:43:09 +01:00
Piotr Caban deca5e1aca jscript: Move code operating on JSRegExp out of do_regexp_match_next function. 2013-02-15 14:43:06 +01:00
Piotr Caban 1d61b4581a jscript: Don't use jsstr_t in js_NewRegExp. 2013-02-15 14:43:04 +01:00
Piotr Caban 89711e35c1 jscript: Don't use jsstr_t in JSRegExp structure. 2013-02-15 14:43:01 +01:00
Piotr Caban 02d63cb312 jscript: Rename jsheap_t to heap_pool_t. 2013-02-15 14:42:58 +01:00
Andrew Talbot 6b5a18f619 jscript: Avoid signed-unsigned integer comparisons. 2013-02-11 11:46:05 +01:00
Piotr Caban c3bdaf59a8 jscript: Update buffer size in do_regexp_match_next. 2013-01-28 13:59:54 +01:00
Piotr Caban c45c7bf94c jscript: Fixed a leak in regexp_match function. 2013-01-25 17:33:05 +01:00
Piotr Caban 1548d0ef7b jscript: Fixed a leak in do_regexp_match_next function. 2013-01-25 17:31:21 +01:00
Jacek Caban 7726e01844 jscript: Don't pass 'this' argument to DISPID_VALUE of pure IDispatch interfaces. 2012-12-24 13:33:14 +01:00
Jacek Caban 99d1a8529b jscript: Added null and undefined values support to to_object. 2012-12-21 17:28:55 +01:00
Jacek Caban 0e6d3b8611 jscript: Optimized concatenation of empty strings. 2012-12-18 12:37:14 +01:00
Jacek Caban f0c0c14241 jscript: Moved string concatenation to helper function. 2012-12-18 12:37:08 +01:00
Jacek Caban f780ae0f86 jscript: Fixed deleting property by ID from IDispatchEx interface. 2012-12-17 20:31:19 +01:00
Jacek Caban 2d7a3bb482 jscript: Fixed deleting properties by name from IDispatchEx interface. 2012-12-17 20:31:18 +01:00
Jacek Caban 7202f1a32f jscript: Fixed deleting properties of pure dispatch interface. 2012-12-17 20:31:18 +01:00
Jacek Caban 4dbd777de2 jscript: Fixed deleting nonexistent identifiers. 2012-12-17 20:31:17 +01:00
Jacek Caban 7f07bb9a7a jscript: Fixed deleting nonexisting properties from member expression. 2012-12-17 20:31:16 +01:00
Jacek Caban 9de9c353ac jscript: Fixed Number.toFixed for value 0 with 0 precision. 2012-12-17 20:31:16 +01:00
Jacek Caban 0f0f76ce6b jscript: Allow poping multiple stack values at the time. 2012-12-14 11:54:47 +01:00
Jacek Caban 10c2a2bba4 jscript: Properly handle return value evaluation in comma expression. 2012-12-14 11:54:44 +01:00
Jacek Caban 1000a6bf34 jscript: Ensure correct stack state for non-returning expression evaluation in compile_expression. 2012-12-13 12:24:15 +01:00
Jacek Caban 162f2e6be2 jscript: Moved eval return value logic to specific statement handlers. 2012-12-13 12:24:07 +01:00
Jacek Caban 2c41c4c1cb jscript: Added SCRIPTTEXT_ISEXPRESSION tests. 2012-12-12 20:23:20 +01:00
Jacek Caban 5e4a16819e jscript: Added support for SCRIPTTEXT_ISEXPRESSION. 2012-12-12 20:23:17 +01:00
Jacek Caban b568d88815 jscript: Throw an error if return statement is in eval code. 2012-12-12 20:23:13 +01:00
Jacek Caban e8766bb66f jscript: Added more useful debug traces. 2012-12-07 12:04:25 +01:00
Jacek Caban 11f41aa05a jscript: Treat VT_UNKNOWN VARIANTs supporting IDispatch interface as VT_DISPATCH. 2012-12-05 20:23:51 +01:00
Jacek Caban 0e5933f70a jscript: Added support for indexed string access. 2012-11-30 19:12:16 +01:00
Jacek Caban 956cb343b2 jscript: Cut arguments circular reference after returning from the function. 2012-11-30 19:12:15 +01:00
Jacek Caban d9d8c8b716 jscript: Added support for DontDelete attribute and use it for arguments object. 2012-11-30 19:12:15 +01:00
Jacek Caban 466fae6444 jscript: Added disp_delete_name helper and use it in interp_delete. 2012-11-30 19:12:14 +01:00
Jacek Caban e6fc8d9b0c jscript: Added disp_delete helper and use it in interp_delete_ident. 2012-11-30 19:12:14 +01:00
Jacek Caban 6b56c65f8d jscript: Alias arguments properties to real values. 2012-11-30 19:12:14 +01:00
Jacek Caban ac41380b94 jscript: Fixed some Coverity issues. 2012-11-27 17:00:45 +01:00
André Hentschel 6804ae26fb jscript: Fix possible NULL pointer access in heap_strdupW. 2012-11-19 16:36:41 +01:00
Jacek Caban 55f0663e3e jscript: Use proper object as 'this' when function is called on an activation object. 2012-11-14 16:37:49 +01:00
Jacek Caban 74a83150ab jscript: Fixed leak in disp_propget. 2012-11-09 16:42:47 +01:00
Jacek Caban 25ffa3d97b jscript: Added more enumerable attribute tests. 2012-11-05 17:44:16 +01:00
Jacek Caban 78652f7602 jscript: Added propertyIsEnumerable implementation. 2012-11-05 17:44:16 +01:00
Jacek Caban ea34e01493 jscript: Use jsdisp_propput_dontenum where appropriate. 2012-11-05 17:44:15 +01:00
Jacek Caban 57f7a6fa4e jscript: Create non-enumerable properties in jsdisp_propput_const. 2012-11-05 17:44:15 +01:00
Jacek Caban 7491d480a9 jscript: Use prop_put in jsdisp_propput_dontenum. 2012-11-05 17:44:14 +01:00
Jacek Caban 12adc67782 jscript: Fixed some leaks (coverity). 2012-10-31 16:12:27 +01:00
Jacek Caban 79a30a4e0a jscript: Optimize object refcount handling. 2012-10-26 13:59:08 +02:00
Jacek Caban 2d962d0395 jscript: Use jsstr_t for passing strings to regexp matching functions. 2012-10-18 19:23:07 +02:00
Michael Stefaniuc f3d15811b4 jscript: Move 'inline' to the beginning of the declaration. 2012-10-15 15:24:37 +02:00
Jacek Caban ec8a57b6de jscript: Removed SysFreeString calls missed in previous patch. 2012-10-12 12:04:28 +02:00
Jacek Caban c2df65eeef jscript: Get rid of BSTR in date.c. 2012-10-11 18:53:14 +02:00
Jacek Caban be885e287b jscript: Use jsstr_t for compiler constant strings. 2012-10-11 18:53:11 +02:00
Jacek Caban 3182852293 jscript: Store regexp source as jsstr_t. 2012-10-11 18:53:08 +02:00
Jacek Caban 7f1e3300fe jscript: Use custom string container instead of BSTR. 2012-10-11 18:53:04 +02:00
Jacek Caban bf65003271 jscript: Added support for pstrFormalParams argument in ParseProcedureText. 2012-10-04 16:29:24 +02:00
Jacek Caban 1d542e3aa4 jscript: Added ParseProcedureText tests. 2012-10-04 16:29:18 +02:00
Jacek Caban 730479e6a4 jscript: Removed useless return statement in jsval_number. 2012-10-03 18:17:02 +02:00
Francois Gouget a809803a92 jscript: Make regexp_match() static. 2012-10-01 11:59:43 +02:00
Jacek Caban fa0dfd0bb6 jscript: Properly invoke regexp matching in String.split. 2012-09-24 22:27:29 +02:00
Jacek Caban 77c3dc544b jscript: Added support for limit argument in String.split. 2012-09-24 22:27:29 +02:00
Jacek Caban c0d2029560 jscript: Fixed conversion in place in IVariantChangeType::ChangeType. 2012-09-21 20:02:58 +02:00
Jacek Caban e374449e30 jscript: Get rid of unused hres.
Spotted by Michael Stefaniuc.
2012-09-20 19:23:16 +02:00
Jacek Caban 87d6e2385a jscript: Added support for RegExp.$* properties. 2012-09-20 19:23:08 +02:00
Francois Gouget d75a4ba17f jscript: Make jsval_variant() static. 2012-09-20 00:00:14 +02:00
Jacek Caban 37509e540f jscript: Pack jsval_t to 64-bit structure on i386. 2012-09-19 13:04:34 +02:00
Jacek Caban 33331b1ccf jscript: Don't store jsexcept_t in exec_ctx_t. 2012-09-19 13:04:24 +02:00
Jacek Caban 6f5475dd26 jscript: Store exception value in script_ctx_t instead of passing it everywhere. 2012-09-19 13:04:16 +02:00
Jacek Caban c0cd0d17aa jscript: Avoid direct access to jsval_t struct. 2012-09-17 18:30:25 +02:00
Jacek Caban 9e7829828e jscript: Don't assume that undefined variable is zeroed. 2012-09-17 18:30:20 +02:00
Jacek Caban c4df88b7fa jscript: Use helper to access jsval_t type. 2012-09-17 18:30:14 +02:00
Jacek Caban c5183bb505 jscript: Use BOOL instead of VARIANT_BOOL in lexer. 2012-09-17 18:30:08 +02:00
Jacek Caban 6920b289b0 jscript: Use BOOL instead of VARIANT_BOOL in a few more places. 2012-09-17 18:30:03 +02:00
Jacek Caban 29f4194d74 jscript: Return BOOL instead of VARIANT_BOOL from jsdisp_is_own_prop. 2012-09-17 18:29:54 +02:00
Jacek Caban bc768b0906 jscript: Store Boolean object's value as BOOL instead of VARIANT_BOOL. 2012-09-17 18:29:49 +02:00
Jacek Caban 5fecc71d34 jscript: Get rid of no longer needed VARIANT helpers. 2012-09-17 18:29:42 +02:00
Jacek Caban a3f7f0f7de jscript: Store regexp last_index value as jsval. 2012-09-17 18:29:35 +02:00
Jacek Caban 228aab23be jscript: Always use jsval-based to_object implementation. 2012-09-17 18:29:19 +02:00
Jacek Caban acfd2b98c3 jscript: Always use jsval-based to_string implementation. 2012-09-17 18:29:11 +02:00
Jacek Caban 2fc71ab6d5 jscript: Always use jsval-based to_uint32 implementation. 2012-09-17 18:29:02 +02:00
Jacek Caban 0bab034fac jscript: Always use jsval-based to_number implementation. 2012-09-17 18:28:52 +02:00
Jacek Caban 26576b83da jscript: Always use jsval-based to_boolean. 2012-09-17 18:28:41 +02:00
Jacek Caban c1eb4326a0 jscript: Always use jsval-based to_primitive. 2012-09-17 18:28:35 +02:00
Jacek Caban daf0b8dad2 jscript: Store exception value as jsval_t instead of VARIANT. 2012-09-17 18:28:05 +02:00
Jacek Caban 80f7f3c246 jscript: Store jsdisp_t values as jsval_t instead of VARIANT. 2012-09-17 18:27:57 +02:00
Jacek Caban 16b2b019b8 jscript: Use jsval_t instead of VARIANT for stack values. 2012-09-17 18:27:42 +02:00
Jacek Caban 847aebdc87 jscript: Use jsval instead of VARIANT to pass arguments to builtin functions. 2012-09-17 18:27:36 +02:00
Jacek Caban 932b3dd088 jscript: Added new variable representation and use it for internal function return values. 2012-09-17 18:27:17 +02:00
Jacek Caban 8c5f5b49ec jscript: Added support for host objects being part of scope chain. 2012-09-13 16:47:29 +02:00
Jacek Caban fdbd536983 jscript: Don't leave current scope in return statement before evaluating the expression. 2012-09-13 16:47:22 +02:00
Jacek Caban dd0fe98646 jscript: Added support for no new line between return and expression rule. 2012-09-10 17:36:08 +02:00
Jacek Caban f1642ce1fc jscript: Added support for no new line between continue and identifier rule. 2012-09-10 17:36:05 +02:00
Jacek Caban dc2133cc66 jscript: Added support for no new line between break and identifier rule. 2012-09-10 17:36:02 +02:00
Jacek Caban 42d75be69d jscript: Be more verbose about parser failure. 2012-09-07 19:15:23 +02:00
Jacek Caban 6ba7a1964a jscript: Fixed empty cases in the end of switch statement. 2012-09-04 16:15:45 +02:00
Jacek Caban 7fec767864 jscript: Fixed argument conversion in disp_call_value when 'this' is specified. 2012-09-03 16:13:21 +02:00
Michael Stefaniuc 37a9183d68 jscript: Avoid FALSE:TRUE conditional expressions. 2012-08-13 17:29:31 +02:00
Jacek Caban 142d0f3026 jscript/tests: Use proper helpers for iface calls. 2012-07-30 17:13:31 +02:00
Jacek Caban 1104663fe7 jscript: Use prototype for builtin String properties. 2012-07-24 13:38:41 +02:00
Jacek Caban 1dfb75d9a3 jscript: Use prototype for builtin RegExp properties. 2012-07-24 13:38:37 +02:00
Jacek Caban 3b80361a70 jscript: Use prototype for builtin Number properties. 2012-07-24 13:38:31 +02:00
Jacek Caban 175c4ddad5 jscript: Use prototype for builtin Date properties. 2012-07-24 13:38:26 +02:00
Jacek Caban 5058c1d12d jscript: Use prototype for builtin Boolean properties. 2012-07-24 13:38:20 +02:00
Jacek Caban 6e4f74f71b jscript: Use prototype for builtin Array properties. 2012-07-24 13:38:09 +02:00
Jacek Caban de6e95213a jscript: Added more tests. 2012-07-23 19:53:49 +02:00
Jacek Caban 10179c210e jscript: Properly handle builtin properties in Object.prototype.hasOwnProperty implementation. 2012-07-23 19:53:48 +02:00
Jacek Caban 15a83f0ff5 jscript: Don't expose properties that belong to function prototype from function instance. 2012-07-23 19:53:48 +02:00
Jacek Caban a2c2103cd3 jscript: Don't expose properties belonging to Object prototype from Object instance. 2012-07-23 19:53:46 +02:00
Jacek Caban d0aa78c096 jscript: Don't set constructor property to each object instance, it belongs to their prototypes. 2012-07-16 16:29:57 +02:00
Jacek Caban 49fd903205 jscript: Expose RegExpError constructor in global object. 2012-07-16 16:29:51 +02:00
Jacek Caban 27747d3a75 jscript: Properly set Error object's constructor property. 2012-07-16 16:29:45 +02:00
Jacek Caban bf7b7272ee jscript: Properly set Function constructor's constructor property. 2012-07-16 16:29:38 +02:00
Jacek Caban d492650332 jscript: Properly handle constructor property for most builtin constructors. 2012-07-16 16:29:31 +02:00
Jacek Caban cf8029717c jscript: Properly set Number.prototyp.constructor. 2012-07-16 16:29:21 +02:00
Jacek Caban 8613d5e9cc jscript: Prefer builtin version. 2012-07-13 14:10:30 -05:00
Francois Gouget b7f74922a4 jscript: Make int_to_bstr() static. 2012-06-26 17:06:11 +02:00
Jacek Caban 7dcd1d06ef jscript: Added more apply and call tests. 2012-06-25 18:12:52 +02:00
Jacek Caban 14138e6f09 jscript: Removed no longer needed arg_cnt and get_arg helpers. 2012-06-25 18:12:52 +02:00
Jacek Caban f8383c3417 jscript: Don't use DISPPARAMS for internal arguments. 2012-06-25 18:12:51 +02:00
Jacek Caban 0307d73569 jscript: Don't use DISPPARAMS named args for internal parameter passing. 2012-06-25 18:12:51 +02:00
Jacek Caban 00b5ba5355 jscript: Moved DISPPARAMS conversion to InvokeEx. 2012-06-21 18:04:56 +02:00
Jacek Caban 1dd4cbc491 jscript: Pass jsthis internally without using DISPPARAMS. 2012-06-21 18:04:52 +02:00
Jacek Caban 17ff7829d3 jscript: Make Function object invocation a special case in IDispatchEx implementation. 2012-06-21 18:04:39 +02:00
Jacek Caban 4a335142f9 jscript: Use INFINITY macro instead of num_set_inf(). 2012-06-21 18:04:32 +02:00
Jacek Caban c7c8cd780a jscript: Use INFINITY macro instead of ret_inf() hack. 2012-06-20 19:21:08 +02:00
Jacek Caban 1532037bcd jscript: Use num_set_int where possible. 2012-06-20 19:21:05 +02:00
Jacek Caban 7118e6fbbb jscript: Use num_set_int in array.c. 2012-06-20 19:21:01 +02:00
Jacek Caban 4cfab07748 jscript: Always store numeric literals as double. 2012-06-20 19:20:57 +02:00
André Hentschel 2f7453f81f jscript/tests: Fix some typos. 2012-06-18 10:57:25 +02:00
Jacek Caban de5495ba86 jscript: Added missing port.h include to lex.c. 2012-05-30 11:28:21 +02:00
Jacek Caban db737291fc jscript: Get rid of num_set_nan hack. 2012-05-29 18:20:14 +02:00
Jacek Caban d0a719a79d jscript: Get rid of ret_nan hack. 2012-05-29 18:20:13 +02:00
Michael Stefaniuc 8f4512f763 jscript/tests: Check the correct return value. 2012-05-21 11:34:38 +02:00
Francois Gouget fac36c55e9 Assorted typo, spelling, wording and case fixes. 2012-05-15 16:26:43 +02:00
Francois Gouget 22fe702f7a jscript/tests: Fix the spelling of the testEmbeddedFunctions() function name. 2012-05-14 12:06:15 +02:00
Jacek Caban 35e663425d jscript: Store double op arg directly instead of by pointer. 2012-05-14 12:04:23 +02:00