Commit Graph

1387 Commits

Author SHA1 Message Date
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
Jacek Caban 1acb30a522 jscript: Added get_op_str and get_op_double helpers. 2012-05-14 12:04:23 +02:00
Jacek Caban e273636d4d jscript: Make flags parameter of OP_regexp unsigned. 2012-05-14 12:04:22 +02:00
Jacek Caban 0d5defafd4 jscipt: Make arg_cnt parameter of OP_new unsigned. 2012-05-14 12:04:22 +02:00
Jacek Caban efe744a8ba jscript: Added get_op_int helper. 2012-05-14 12:04:21 +02:00
Jacek Caban bad9afb3a0 jscript: Added get_op_uint helper. 2012-05-14 12:04:21 +02:00
Jacek Caban 9a496ce10b jscript: Added get_op_bstr helper. 2012-05-14 12:04:20 +02:00
Jacek Caban c8a28a9671 jscript: Added support for VT_INT. 2012-05-04 18:08:33 +02:00
Jacek Caban c61af66c5b jscript: Skip failing tests on old jscript versions. 2012-05-04 18:08:32 +02:00
Jacek Caban 56bf46fda0 jscript: Return double from to_integer. 2012-05-03 20:44:11 +02:00
Jacek Caban e26a3018e7 jscript: Better handling of to_integer in String.substr. 2012-05-03 20:44:10 +02:00
Jacek Caban 9b02d2d5a3 jscript: Better handling of to_integer result in String.substring. 2012-05-03 20:44:10 +02:00
Jacek Caban c01562040d jscript: Better handling of to_integer result in String.slice. 2012-05-03 20:44:10 +02:00
Jacek Caban d49635f08a jscript: Better handling of to_integer result in String.lastIndexOf. 2012-05-03 20:44:09 +02:00
Jacek Caban baa07477d2 jscript: Bettter handling of to_number result in String.indexOf. 2012-05-03 20:44:09 +02:00
Jacek Caban 621180e81c jscript: Better handling of to_integer result in String.charCodeAt. 2012-05-03 20:44:08 +02:00
Jacek Caban 0143201eac jscript: Better handling of to_integer result in String.charAt. 2012-05-03 20:44:08 +02:00
Jacek Caban 3ee7438a5f jscript: Better handling of to_integer result in Array.splice. 2012-05-03 20:44:08 +02:00
Jacek Caban 5b83abced7 jscript: Properly test if double may be converted to int32. 2012-05-02 20:14:56 +02:00
Jacek Caban 13db9a1662 jscript: Added VT_I2 tests. 2012-05-01 15:28:24 +02:00
Jacek Caban c9c8c6165e jscript: Added support for VT_I2 in invoke_prop_func. 2012-05-01 15:28:22 +02:00
Jacek Caban da125450da jscript: Added support for VT_I2 in disp_call. 2012-05-01 15:28:18 +02:00
Jacek Caban b6a1912392 jscript: Added support for VT_I2 in disp_propget. 2012-05-01 15:28:16 +02:00
Thomas Faber 58ad6fcf1f jscript: Add missing port.h include for isnan. 2012-04-30 11:00:35 +02:00
Jacek Caban 30acd235dd jscript: Removed unused do_*_tag_format arguments. 2012-04-27 12:02:31 +02:00
Jacek Caban 424b63119c jscript: Use stack_push_int in interp_bneg. 2012-04-27 12:02:28 +02:00
Jacek Caban ca15adfde6 jscript: Get rid of parser function collecting hack by moving the logic to compiler. 2012-04-26 19:27:36 +02:00
Piotr Caban cc6205f10c jscript: Fix toExponential behavior when exponent is 0. 2012-04-25 17:16:37 +02:00
Jacek Caban 474f1152b2 jscript: Moved collecting variable declarations from parser to compiler. 2012-04-25 12:17:08 +02:00
Jacek Caban b866c7f5e9 jscript: Make parser a temporary compiler object. 2012-04-25 12:17:04 +02:00
Jacek Caban 97b44da746 jscript: Store function parameters in function_code_t. 2012-04-25 12:17:01 +02:00
Jacek Caban d1a4053953 jscript: Fixed func->funcs leak. 2012-04-25 12:16:56 +02:00
Jacek Caban 64a3f5077f jscript: Store variable names in function_code_t. 2012-04-25 12:16:52 +02:00
Jacek Caban 375ab889d8 jscript: Store source code range in function_code_t. 2012-04-24 17:45:27 +02:00
Jacek Caban 8c533d10d6 jscript: Store function name in function_code_t. 2012-04-24 17:45:18 +02:00
Jacek Caban d76b675ea8 jscript: Use compiler-generated struct for representing function code. 2012-04-24 17:45:16 +02:00
Jacek Caban 4733fd0623 jscript: Added regexp 'pre-parser' to support non-backslash-sequenced non-terminating '/' in characted classes. 2012-04-20 11:59:51 +02:00
Piotr Caban 4c4c7c047f jscript: Added Number.toPrecision implementation. 2012-04-19 19:28:11 +02:00
Piotr Caban c1228eb45f jscript: Added Number.toExponential implementation. 2012-04-19 19:28:11 +02:00
Piotr Caban a20c0d1141 jscript: Added Number.toFixed implementation. 2012-04-19 19:28:11 +02:00
Piotr Caban b81e44f8d9 jscript: Make parsing of double more accurate. 2012-04-19 19:28:10 +02:00
André Hentschel 6677982728 jscript: Remove unneeded shadow variable. 2012-04-18 17:13:14 +02:00
Jacek Caban c1cb8f29b0 jscript: Correctly handle empty matches in String.replace. 2012-04-18 15:44:47 +02:00
Jacek Caban e21588aef7 jscript: Pass correct cpbegin to InitMatch. 2012-04-18 15:44:43 +02:00
Frédéric Delanoy 69f3d23045 jscript: Assorted spelling fixes. 2012-04-18 13:59:44 +02:00
Jacek Caban d2fb2af8ee jscript: Added parameterized property assignment tests. 2012-04-17 19:19:07 +02:00
Jacek Caban 0b0e34ab39 jscript: Addded parameterized property assignment support. 2012-04-17 19:19:03 +02:00
Jacek Caban 05d59abc1c jscript: Make sure to jump out of switch before entering implicit default clausule. 2012-04-16 12:08:56 +02:00
Jacek Caban 78fc648dec jscript: Replace only the first match for non-regexp pattern in String.replace. 2012-04-09 17:16:00 +02:00
Jacek Caban bf066791e0 jscript: Avoid cleaning an uninitialized variable. 2012-04-04 19:02:49 +02:00
Jacek Caban 114a439fed jscript: Fixed parsing /=/ regexp. 2012-04-02 14:14:32 +02:00
Jacek Caban 353553e0aa jscript: Emit undefined statement return for switch without default clausule. 2012-04-02 14:14:30 +02:00
Jacek Caban b3bafb60a2 jscript: Fixed jsheap_grow implementation. 2012-04-02 12:34:45 +02:00
Jacek Caban 8f36daa422 jscript: Properly handle NULL bstr in str_to_number. 2012-03-28 17:28:34 +02:00
Jacek Caban 7bb41e75b6 jscript: Store value as double in NumberInstance object. 2012-03-27 11:43:17 +02:00
Jacek Caban 0bf61fb640 jscript: Return double instead of VARIANT from stack_pop_number. 2012-03-27 11:43:10 +02:00
Jacek Caban 0d287ff0b1 jscript: Return double instead of VARIANT from date_utc. 2012-03-27 11:43:06 +02:00
Jacek Caban 451169fb93 jscript: Return double instead of VARIANT from to_number. 2012-03-27 11:43:01 +02:00
Jacek Caban c18b84cf4e jscript: Added decoding tests. 2012-03-26 18:15:15 +02:00
Jacek Caban f7a8650500 jscript: Added decoding support. 2012-03-26 18:15:11 +02:00
Jacek Caban 129183ebb0 jscript: Added JScriptEncode object tests. 2012-03-26 18:15:09 +02:00
Jacek Caban 4a9eea3516 jscript: Added beginning support for JScriptEncode object. 2012-03-26 18:15:09 +02:00
Jacek Caban 0762106648 jscript: Store source code in bytecode_t. 2012-03-26 18:15:08 +02:00
Jacek Caban 84ed86c431 jscript: Get rid of no longer needed caller argument from builtin_invoke_t. 2012-03-14 17:34:00 +01:00
Jacek Caban a6ee63eef3 jscript: Removed no longer needed ref counting in parser_ctx_t. 2012-03-13 10:30:53 +01:00
Jacek Caban a1c4c84005 jscript: Store parser_ctx_t in bytecode_t instead of other way around. 2012-03-13 10:30:49 +01:00
Jacek Caban 8c347fd71d jscript: Store script context in exec_ctx_t. 2012-03-13 10:30:42 +01:00
Jacek Caban 9d4b0bd502 jscript: Don't store compiler_ctx_t in parser_ctx_t. 2012-03-13 10:30:36 +01:00
Jacek Caban be29a73845 jscript: Call script_parse from compile_script, not the other way around. 2012-03-13 10:30:32 +01:00
Jacek Caban 825eb76321 jscript: Compile all function from given source in one run. 2012-03-13 10:30:27 +01:00
Jacek Caban 4fb1cad149 jscript: Simplify compile_subscript_stat. 2012-03-13 10:30:22 +01:00
Jacek Caban 9f83c6061f jscript: Store bytecode_t in exec_ctx_t. 2012-03-13 10:30:18 +01:00
Jacek Caban 29b9237c91 jscript: Removed no longer needed caller argument from jsdisp_get_idx. 2012-03-12 16:37:21 +01:00
Jacek Caban 0d9cc45406 jscript: Removed no longer needed caller argument from jsdisp_propget_name. 2012-03-12 16:37:21 +01:00
Jacek Caban 7d4ba8db63 jscript: Removed no longer needed caller argument from jsdisp_propput_idx. 2012-03-12 16:37:20 +01:00
Jacek Caban 12bc6e0cc7 jscript: Removed no longer needed caller argument from jsdisp_propput_name and jsdisp_propget. 2012-03-12 16:37:20 +01:00
Jacek Caban a80dd7cb79 jscript: Removed no longer needed caller argument from jsdisp_call_name. 2012-03-12 16:37:19 +01:00
Jacek Caban 07be020a48 jscript: Removed no longer needed caller argument from jsdisp_call_value. 2012-03-12 16:37:19 +01:00
Jacek Caban 93972b79cc jscript: Added VARIANT conversion tests. 2012-03-12 16:37:18 +01:00
Jacek Caban c6360c3e6e jscript: Added QueryService(SID_VariantConversion) implementation. 2012-03-12 16:37:18 +01:00
Jacek Caban bac7c1ef36 jscript: Added ChangeType implementation. 2012-03-12 16:37:17 +01:00
Jacek Caban fb79915803 jscript: Removed no longer needed disp_propput caller argument. 2012-03-09 11:31:29 +01:00
Jacek Caban f560e98346 jscript: Removed no longer needed disp_propget caller argument. 2012-03-09 11:31:24 +01:00
Jacek Caban e0ae18260e jscript: Removed no longer needed caller argument of disp_call function. 2012-03-09 11:31:19 +01:00
Jacek Caban dfb59c6049 jscript: Pass proper caller argument to InvokeEx. 2012-03-09 11:31:15 +01:00
Jacek Caban f8b20563aa jscript: Properly handle NULL strings in add_eval. 2012-03-09 11:31:09 +01:00
Jacek Caban 1cadd7cc32 jscript: Added IVariantChangeType stub implementation. 2012-03-09 11:31:04 +01:00
Jacek Caban 2830a21e1d jscript: Get rid of unused SET_CALLED macro. 2012-01-27 18:05:52 +01:00
Alistair Leslie-Hughes ae46ad83a5 jscript: ActiveX objects might not support IServiceProvider Interface. 2012-01-25 20:39:48 +01:00
Jacek Caban e5baa75034 jscript: Simplify identifier_eval function. 2012-01-18 16:25:46 +01:00
Alexandre Julliard 902915f667 jscript: Set return value after assert(0) to avoid warnings. 2012-01-17 15:02:47 +01:00
Jacek Caban f03b24ad3e jscript: Get rid of no longer used OP_label. 2012-01-17 14:08:33 +01:00
Jacek Caban 5c47f4a269 jscript: Added labelled statements tests. 2012-01-17 14:08:32 +01:00
Jacek Caban 4aec6b1090 jscript: Added labelled continue statement implementation. 2012-01-17 14:08:32 +01:00
Jacek Caban 9a4e12aa93 jscript: Added labelled break statement implementation. 2012-01-17 14:07:54 +01:00
Jacek Caban 383e2b1a0e jscript: Added labelled statement implementation. 2012-01-17 14:06:13 +01:00
Jacek Caban 5561ee635c jscript: Fixed jscript tests on some broken versions. 2012-01-12 16:09:45 +01:00
Jacek Caban afcb9a0130 jscript: Run sanity check with invoke_version 0. 2012-01-12 16:09:42 +01:00
Jacek Caban e7bb8813a9 jscript: Don't use break in finally block on pre-IE8 jscript. 2012-01-12 16:09:33 +01:00
Jacek Caban dc5a75a7ac jscript: Fixed continue inside for..in statement. 2012-01-10 17:58:57 +01:00
Francois Gouget ee2111b5d5 jscript: Make some engine functions static. 2012-01-09 12:52:10 +01:00
Jacek Caban 5640da1414 jscript: Run script tests in version 2 by default. 2012-01-06 19:24:23 +01:00
Michael Stefaniuc 158c8b76cb jscript: Remove break after return (Smatch). 2012-01-03 12:37:57 +01:00
Marcus Meissner 0648a567a8 jscript: Mark some function DECLSPEC_HIDDEN. 2012-01-03 12:37:31 +01:00
Jacek Caban 4f59ab4ab7 jscript: Use 0 as an invalid label value. 2012-01-03 12:37:23 +01:00
Jacek Caban 9752df99af jscript: Get rid of instr_off from expression_t. 2012-01-03 12:37:23 +01:00
Jacek Caban 708c83e208 jscript: Make 0 an invalid code offset. 2012-01-03 12:37:22 +01:00
Jacek Caban 11453b2414 jscript: Always alloc the first chunk of code buffer. 2012-01-03 12:37:22 +01:00
Jacek Caban da07748ca2 jscript: Get rid of return_type_t. 2011-12-30 15:41:07 +01:00
Jacek Caban 83e8658894 jscript: Get rid of no longer needed interp_tree. 2011-12-30 15:41:06 +01:00
Jacek Caban cdd90254dd jscript: Get rid of no longer needed compile_interp_fallback since we can handle all execution by bytecode.
We use compiler on whole functions body now. There is still some work
done to move it one level up (to whole source string) to do some work
that's currently done (sometimes in a hacky way) by parser, but the most
critical part is done.
2011-12-30 15:41:06 +01:00
Jacek Caban e0552ad8c3 jscript: Use bytecode for labeled continue and break statements. 2011-12-30 15:41:06 +01:00
Jacek Caban b82a6982a9 jscript: Get rid of no longer needed type field of return_type_t structure. 2011-12-30 15:41:05 +01:00
Jacek Caban fc092da98e jscript: Use bytecode for return statement implementation. 2011-12-30 15:41:05 +01:00
Jacek Caban dd7a5301e6 jscript: Make compiler responsible for proper return from regular code vs. eval-interpreted code. 2011-12-30 15:41:04 +01:00
Jacek Caban 11ccf0f33e jscript: Handle invalid continue statements in compiler. 2011-12-30 15:41:01 +01:00
Jacek Caban 7361cdc2f3 jscript: Handle invalid break statements in compiler. 2011-12-30 15:40:58 +01:00
Jacek Caban 59619073a8 jscript: Added bytecode dumper implementation. 2011-12-29 16:18:51 +01:00
Jacek Caban ee6e6986fb jscript: Moved instr_off from statement_t to source_elements_t. 2011-12-29 16:18:50 +01:00
Jacek Caban b3907c40f7 jscript: No longer support per-statement compilation. 2011-12-29 16:18:50 +01:00
Jacek Caban 6710e7ec6f jscript: Get rid of stat_eval_table. 2011-12-29 16:18:49 +01:00
Jacek Caban f08fcff4fd jscript: Moved exec_source to the bottom of the file. 2011-12-29 16:18:48 +01:00
Jacek Caban 2dcb8d412f jscript: Always use bytecode for while statement. 2011-12-29 16:18:48 +01:00
Jacek Caban c6932d8069 jscript: Always use bytecode for try statement. 2011-12-29 16:18:47 +01:00
Jacek Caban 985c6a1943 jscript: Always use bytecode for switch statement. 2011-12-29 16:18:46 +01:00
Jacek Caban f904bc8e78 jscript: Always use bytecode for for statement. 2011-12-29 16:18:46 +01:00
Jacek Caban 2c0920f8c3 jscript: Always use bytecode for for..in statement. 2011-12-29 16:18:45 +01:00
Jacek Caban 1c0fe6002d jscript: Always use bytecode for with statement. 2011-12-29 16:18:44 +01:00
Jacek Caban d7fd00fdab jscript: Added more control flow tests. 2011-12-28 17:49:35 +01:00
Jacek Caban 8f8c852897 jscript: Get rid of no longer needed no_fallback hack. 2011-12-28 17:49:30 +01:00
Jacek Caban c5c2276a9f jscript: Added bytecode versions of break and continue statements. 2011-12-28 17:49:19 +01:00
Jacek Caban 80113b5c5c jscript: Use labels in compiler for ending loops. 2011-12-28 17:49:15 +01:00
Jacek Caban 3b56e49ef9 jscript: Added bytecode version of try statement. 2011-12-28 17:48:48 +01:00
Jacek Caban 02ff8d1853 jscript: Use bytecode for throw statement. 2011-12-28 17:48:42 +01:00
Jacek Caban 3f4f9f0f40 jscript: Rename throw opcode to throw_ref. 2011-12-28 17:48:37 +01:00
Jacek Caban 661241a392 jscript: Added bytecode version of for..in statement. 2011-12-28 17:48:32 +01:00
Jacek Caban a6530f4032 jscript: Use bytecode for labelled statement stub. 2011-12-27 16:55:09 +01:00
Jacek Caban c57dd899a4 jscript: Added bytecode version of switch statement. 2011-12-27 16:55:08 +01:00
Jacek Caban abffe88e19 jscript: Added bytecode version of with statement. 2011-12-27 16:55:08 +01:00
Jacek Caban 17fedc448b jscript: Added bytecode version of for loop statement. 2011-12-27 16:55:07 +01:00
Jacek Caban f5425aeeca jscript: Added bytecode version of while statement. 2011-12-27 16:55:07 +01:00
Jacek Caban 95677c5099 jscript: Added new jmp_z opcode, more appropriate for branches. 2011-12-20 20:06:30 +01:00
Jacek Caban e5d7d50faa jscript: Renamed jmp_z and jmp_nz to cnd_z and cnd_nz. 2011-12-20 20:06:30 +01:00
Jacek Caban 00030ff66f jscript: Get rid of no longer needed identifier in exprval_t. 2011-12-20 20:06:29 +01:00
Jacek Caban f5a3f1417e jscript: Get rid of no longer used expr_eval flags. 2011-12-20 20:06:29 +01:00
Jacek Caban 5c158f1df6 jscript: Use compiler to handle variable statement. 2011-12-20 20:06:28 +01:00
Alistair Leslie-Hughes 1a9d9e0f76 jscript: Don't double free IObjectWithSite interface. 2011-12-20 10:13:10 +01:00
Jacek Caban 7c3160ae02 jscript: Use compiler for hanling empty statements. 2011-12-19 20:15:47 +01:00
Jacek Caban cf2fc11e31 jscript: Use compiler for handling if statement. 2011-12-19 20:15:47 +01:00
Jacek Caban ccba279b89 jscript: Use compiler for handling expression statements. 2011-12-19 20:15:47 +01:00
Jacek Caban 2f3e27f09a jscript: Use bytecode for execution main code block in exec_source. 2011-12-19 20:15:46 +01:00
Jacek Caban f6023c428a jscript: Use bytecode for block statement implementation. 2011-12-19 20:15:46 +01:00
Jacek Caban 42aefd424d jscript: Store type information in statement nodes. 2011-12-19 20:15:45 +01:00
Jacek Caban 47fa932ac0 jscript: Return VARIANT directly from expr_eval. 2011-12-16 16:38:29 +01:00
Jacek Caban 6b1077e2cb jscript: Invoke bytecode directly from expr_eval. 2011-12-16 16:38:29 +01:00
Jacek Caban fecc2fcb5e jscript: Get rid of no longer needed expression eval entry. 2011-12-16 16:38:28 +01:00
Jacek Caban 5e6faaea12 jscript: Use bytecode for object literal implementation. 2011-12-16 16:38:28 +01:00
Jacek Caban b268e41da6 jscript: Use bytecode for function expression implementation. 2011-12-16 16:38:28 +01:00
Jacek Caban 5086bb2cd9 jscript: Get rid of no longer needed EXPR_NEWREF flag. 2011-12-15 17:46:47 +01:00
Jacek Caban 63366f8f1b jscript: Always use compiler for member, array and identifier expressions. 2011-12-15 17:46:47 +01:00
Jacek Caban 43a2d8b990 jscript: Don't pass EXPR_NEWREF to name expression in array_expression_eval. 2011-12-15 17:46:46 +01:00
Jacek Caban 595646066b jscript: Call expressions needling EXPR_NEWREF flag directly. 2011-12-15 17:46:46 +01:00
Jacek Caban fd6ecbd781 jscript: Throw type error on invalid delete. 2011-12-15 17:46:42 +01:00
Jacek Caban 7845fe595d jscript: Added more deleting tests. 2011-12-15 17:46:41 +01:00
Jacek Caban 3fd2979fba jscript: Use byte code for deleting identifier expressions. 2011-12-15 17:46:41 +01:00
Jacek Caban 3caf287630 jscript: Use bytecode for typeof expression implementation. 2011-12-13 18:59:10 +01:00
Jacek Caban 64ef20ce53 jscript: Initialize VARIANT before passing it to disp_propget. 2011-12-12 15:50:50 +01:00
Jacek Caban 2c8e8948df jscript: Properly handle NULL IDispatch in stack_pop_object. 2011-12-12 15:50:46 +01:00
Jacek Caban 6f35c8fd5d jscript: Use bytecode for instanceof implementation. 2011-12-12 15:50:46 +01:00
Jacek Caban f8e3e92be3 jscript: Don't use EXPR_NEWREF in forin_statement_event. 2011-12-12 15:50:45 +01:00
Jacek Caban 106fcb8e87 jscript: Don't use EXPR_NEWREF in for_statement_event. 2011-12-12 15:50:45 +01:00
Jacek Caban 7c3728d728 jscript: Use bytecode for '<<=' expression implementation. 2011-12-09 21:15:29 +01:00
Jacek Caban a80392e5ea jscript: Use bytecode for '<<' expression implementation. 2011-12-09 21:15:28 +01:00
Jacek Caban 7904932a9e jscript: Use bytecode for '>>>=' expression implementation. 2011-12-09 21:15:28 +01:00
Jacek Caban 96e822a33e jscript: Use bytecode for '>>>' expression implementation. 2011-12-09 21:15:28 +01:00
Jacek Caban fcdd85267d jscript: Fixed memory leaks. 2011-12-09 21:15:27 +01:00
Jacek Caban d30bfb6e54 jscript: Use bytecode for '>>=' expression. 2011-12-08 18:00:16 +01:00
Jacek Caban 28013dfa6f jscript: Use bytecode for '>>' expression. 2011-12-08 18:00:14 +01:00
Jacek Caban fc4948af2c jscript: Use bytecode for '&=' expression implementation. 2011-12-08 18:00:12 +01:00
Jacek Caban 1ef486421e jscript: Use bytecode for binary and implementation. 2011-12-08 18:00:11 +01:00
Jacek Caban 558d759465 jscript: Use bytecode for array literal expressions. 2011-12-08 18:00:09 +01:00
Jacek Caban 4d0e360266 jscript: Use bytecode for pre-decrement implementation. 2011-12-08 18:00:07 +01:00
Jacek Caban 667cc2e68a jscript: Use bytecode for pre-increment expression implementation. 2011-12-08 18:00:05 +01:00
Jacek Caban 0325ec71e9 scrrun: Moved script extensions registration to scrrun.dll. 2011-12-07 17:50:02 +01:00
Jacek Caban e1da3d7242 jscript: Use bytecode for post-decrement expression. 2011-12-07 17:50:02 +01:00
Jacek Caban a508149fad jscript: Use bytecode for post-increment expression. 2011-12-07 17:50:01 +01:00
Jacek Caban aa809f1b7e jscript: Added bytecode version of array expression. 2011-12-07 17:50:01 +01:00
Jacek Caban 9c9157a144 jscript: Use binary_expression_t instead of array_expression_t. 2011-12-07 17:50:01 +01:00
Jacek Caban 4da0cf39f4 jscript: Use bytecode for all call expressions. 2011-12-07 17:50:00 +01:00
Jacek Caban 3aa7cee00e jscript: Use bytecode for calls on identifier and member expressions. 2011-12-07 17:50:00 +01:00
Francois Gouget 0a065cb4bd jscript: Make interp_expression_eval() static. 2011-12-06 17:54:33 +01:00
Jacek Caban 9749de29bc jscript: Use bytecode for '^=' expression implementation. 2011-12-06 15:50:59 +01:00
Jacek Caban c74641acf2 jscript: Use bytecode for '|=' expression. 2011-12-06 15:50:59 +01:00
Jacek Caban a289b8e0a4 jscript: Added bytecode version of member expression. 2011-12-06 15:50:59 +01:00
Jacek Caban 822fdde42d jscript: Use bytecode for '%=' expression implementation. 2011-12-06 15:50:59 +01:00
Jacek Caban e9bd2e47f8 jscript: Use bytecode for '/=' expression implementation. 2011-12-06 15:50:59 +01:00