Commit Graph

342 Commits

Author SHA1 Message Date
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 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 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 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
Jacek Caban 0ff59f444b jscript: Use bytecode for '*=' expression implementation. 2011-12-06 15:50:59 +01:00
Jacek Caban 7b022dbbb8 jscript: Use bytecode for '-=' expression implementation. 2011-12-05 12:25:14 +01:00
Jacek Caban 087afe8b79 jscript: Use bytecode for '+=' expression implementation. 2011-12-05 12:25:09 +01:00
Jacek Caban 8511797c07 jscript: Use bytecode for invalid assignments. 2011-12-05 12:25:04 +01:00
Jacek Caban 5b2c2c5cf9 jscript: Use bytecode for assignment to member expression. 2011-12-05 12:24:59 +01:00
Jacek Caban 9aafd03110 jscript: Use bytecode for assigning to array expression. 2011-12-05 12:24:55 +01:00
Jacek Caban d3d2f063b6 jscript: Use bytecode for assignment to identifier. 2011-12-05 12:24:50 +01:00
Jacek Caban 9f9f5ae0a7 jscript: Use bytecode for '>=' expression implementation. 2011-12-01 14:18:41 +01:00
Jacek Caban f3e18fbf03 jscript: Use bytecode for '>' expression implementation. 2011-12-01 14:18:37 +01:00
Jacek Caban fb51810a95 jscript: Use bytecode for '<=' expression implementation. 2011-12-01 14:18:33 +01:00
Jacek Caban e5a31cc2d0 jscript: Use bytecode for '<' expression implementation. 2011-12-01 14:18:29 +01:00
Jacek Caban 82368f5cfe jscript: Get rid of no longer needed EXPRVAL_NAMEREF. 2011-11-30 11:51:29 +01:00
Jacek Caban facc2189d2 jscript: Use bytecode for delete on array expression implementation. 2011-11-30 11:51:20 +01:00
Jacek Caban 6c47177cb1 jscript: Mark some functions as static. 2011-11-30 11:51:16 +01:00
Jacek Caban 0505e03b57 jscript: Use bytecode for binary xor expressions. 2011-11-29 13:26:29 +01:00
Jacek Caban 96b13314eb jscript: Use bytecode for binary or implementation. 2011-11-29 13:26:26 +01:00
Jacek Caban 7a20965bd2 jscript: Use bytecode for modulo expression implementation. 2011-11-29 13:26:22 +01:00
Jacek Caban 09306e434e jscript: Use bytecode for '/' expression implementation. 2011-11-29 13:26:18 +01:00
Jacek Caban cf68237c80 jscript: Use bytecode for '*' expression implementation. 2011-11-29 13:26:15 +01:00
Jacek Caban bd80daff96 jscript: Added bytecode-based version of identifier expression. 2011-11-28 16:40:50 +01:00
Jacek Caban 518f4c4983 jscript: Use bytecode for new expression implementation. 2011-11-28 16:40:49 +01:00
Jacek Caban 25e58de596 jscript: Use bytecode for conditional expressions. 2011-11-28 16:40:49 +01:00
Jacek Caban 88dc54a7f7 jscript: Use bytecode for logical and expression. 2011-11-28 16:40:49 +01:00
Jacek Caban 28375af386 jscript: Use bytecode for logical or expression. 2011-11-28 16:40:49 +01:00
Jacek Caban 58952a07d0 jscript: Use bytecode for '==' and '!=' expression. 2011-11-25 16:21:58 +01:00
Jacek Caban 413fe9a462 jscript: Use bytecode for unary '-' expression. 2011-11-25 16:21:58 +01:00
Jacek Caban b13c6a27c3 jscript: Use bytecode for '-' expression implementation. 2011-11-25 16:21:58 +01:00
Jacek Caban 47314a92d7 jscript: Use bytecode for comma expression implementation. 2011-11-25 16:21:58 +01:00
Jacek Caban 172fa4fa99 jscript: Fixed memory leaks.
Spotted by Piotr.
2011-11-25 16:21:57 +01:00
Jacek Caban 0b50c32c83 jscript: Use bytecode for void expression. 2011-11-24 20:57:01 +01:00
Jacek Caban 83667e74d6 jscript: Use bytecode for this expression implementation. 2011-11-24 20:57:01 +01:00
Jacek Caban 9050c3725f jscript: Always use bytecode version of literal expressions. 2011-11-24 20:57:01 +01:00
Jacek Caban e4f92ef473 jscript: Use bytecode for regexp literals. 2011-11-24 20:57:01 +01:00
Jacek Caban 83c53d855a jscript: Use bytecode for null literal. 2011-11-24 20:57:01 +01:00
Jacek Caban a218e06854 jscript: Use bytecode for double literal. 2011-11-23 12:29:22 +01:00
Jacek Caban e5e7803a55 jscript: Use bytecode for string literal. 2011-11-23 12:29:17 +01:00
Jacek Caban 13d96df4bd jscript: Use bytecode for bool literal implementation. 2011-11-23 12:29:14 +01:00
Jacek Caban b3feafab41 jscript: Use bytecode for int literal implementation. 2011-11-23 12:29:10 +01:00
Jacek Caban 1c824ea606 jscript: Use bytecode for 'in' expression implementation. 2011-11-23 12:29:05 +01:00
Jacek Caban b1b0aadaab jscript: Use bytecode for '+' expression implementation. 2011-11-22 17:17:13 +01:00
Jacek Caban 35b9c42f53 jscript: Use bytecode for unary '+' expression. 2011-11-21 16:16:44 +01:00
Jacek Caban 2d83bdcfbe jscript: Use bytecode for binary negation implementation. 2011-11-21 16:16:42 +01:00
Jacek Caban 418af7eda9 jscript: Use bytecode interpreter for logical negation expression. 2011-11-18 15:37:08 +01:00
Jacek Caban 32602170a5 jscript: Use bytecode interpreter for '!==' expressions. 2011-11-18 15:37:08 +01:00
Jacek Caban b473f5d5c6 jscript: Added minimal bytecode compiler/interpreter and use it for '===' expressions. 2011-11-18 15:37:08 +01:00
Jacek Caban 6ffe4cb59f jscript: Moved return_type_t declaration to engine.c. 2011-10-25 16:57:26 +02:00
Jacek Caban a7cc9441e9 jscript: Correctly throw an exception if instanceof expression is not used on function. 2011-06-21 18:14:49 +02:00
Jacek Caban 42c2bd7bd9 jscript: Correctly handle forin statement on pure IDispatch object. 2011-06-21 18:14:47 +02:00
Jacek Caban 020245bba1 jscript: Fixed some clang warnings. 2011-01-27 16:32:22 +01:00
Jacek Caban 3d1595dc81 jscript: Return 'unknown' in typeof operator for native object's values that can't be retrieved. 2010-12-29 17:43:13 +01:00
Jacek Caban 7774a0a4c1 jscript: Pass HRESULTs instead of IDSs to throw_* functions. 2010-12-28 16:35:41 +01:00
Jacek Caban faf9be0267 jscript: Pass script_ctx_t instead of exec_ctx_t to eval functions. 2010-10-25 12:41:40 +02:00
Jacek Caban 35968b9755 jscript: Don't lookup global variables on function invocation. 2010-10-14 17:54:52 +02:00
Reece Dunn e368fd545c jscript: Throw TypeError if T in 'new T' is not an object. 2010-10-05 14:07:48 +02:00
Jacek Caban f46f926134 jscript: Addd jsdisp_addref helper function. 2010-09-07 16:01:57 +02:00
Jacek Caban ac8d2f1fae jscript: jsdisp_t to IDispatch casts clean up. 2010-09-07 16:01:52 +02:00
Jacek Caban 2ae0f44033 jscript: Added a helper function for setting VARIANT value to jsdisp_t. 2010-09-07 16:01:46 +02:00
Jacek Caban 8c2a548b54 jscript: Rename DispatchEx to jsdisp_t to match jscript naming convention. 2010-09-06 17:09:57 +02:00
Jacek Caban d6648e4f6a jscript: Throw TypeError in in_eval. 2010-08-16 15:54:23 +02:00
Jacek Caban be3dc38183 jscript: Throw TypeError in instanceof_expression_eval. 2010-08-16 15:54:23 +02:00
Rob Shearman 9dc584d0a2 jscript: Fix various memory and reference count leaks. 2009-12-31 14:27:06 +01:00
Rob Shearman 7db81aeb67 jscript: Make sure retv pointer is initialised in exec_source even if no value needs to be returned. 2009-12-31 12:12:16 +01:00
Jacek Caban a0467ef11c jscript: Make undefined a property of global object. 2009-12-21 15:01:25 +01:00
Jacek Caban 8d44d63849 jscript: Don't pass EXPR_NEWREF flag to evaluate member expression in array_expression_eval. 2009-12-07 14:18:28 +01:00
Jacek Caban 56b04194fc jscript: Don't return function value it's unless explicitly returned. 2009-11-05 11:57:30 +01:00
Jacek Caban a1ac9d661f jscript: Pass invoke version to IDispatchEx functions. 2009-10-20 13:48:00 +02:00
Jacek Caban e52115d673 jscript: Create regexp object when evaluating regexp literal. 2009-10-14 15:10:32 +02:00
Jacek Caban fa3e6917b4 jscript: Don't use VARTYPE as is in literal_t. 2009-10-14 15:10:17 +02:00
Jacek Caban d833314c70 jscript: Use host global object as default 'this' if available and global object otherwise. 2009-09-28 12:38:00 +02:00
Jacek Caban 5dcd182e8f jscript: Avoid using dispex->ctx. 2009-09-23 16:25:13 +02:00
Jacek Caban fadfab5ff6 jscript: Use script LCID in *disp_propput* functions. 2009-09-23 16:19:11 +02:00
Jacek Caban 8b338786aa jscript: Use script LCID in *disp_propget* functions. 2009-09-23 16:19:01 +02:00
Jacek Caban 1f565ac095 jscript: Use script global LCID in *disp_call* functions. 2009-09-23 16:18:54 +02:00
Jacek Caban 6888ea3913 jscript: Fixed NULL IDispatch comparistion. 2009-09-17 10:08:19 -05:00
Jacek Caban 3e1430e0e4 jscript: Fixed null dispatch comparison. 2009-09-15 14:31:52 -05:00
Francois Gouget 78210e17fa jscript: Add a trailing '\n' to a FIXME(). 2009-09-11 12:10:13 +02:00
Jacek Caban 1e7b90463e jscript: Added 'in' expression implementation. 2009-09-08 13:06:32 +02:00
Jacek Caban dda957d87c jscript: Fixed typeof implementation for null VT_DISPATCH. 2009-09-08 13:06:24 +02:00
Piotr Caban 2e97b1f07f jscript: Throw 'Object expected' error in call_expression_eval. 2009-09-02 14:40:34 +02:00
Jacek Caban c444a4907e jscript: Code clean up. 2009-09-01 15:59:10 +02:00
Jacek Caban 2a457fb701 jscript: Added 'instanceof' keyword implementation. 2009-08-29 16:48:53 +02:00
Jacek Caban b71aaadbd2 jscript: Get script_ctx_t as to_object arguments. 2009-08-29 16:48:53 +02:00
Jacek Caban 4b8adbef86 jscript: Create undeclared values to script_disp instead of var_disp. 2009-08-27 11:48:13 +02:00
Jacek Caban 9c18f6ef5d jscript: Return "undefined" type for invalid references. 2009-08-27 11:48:10 +02:00
Jacek Caban a4acd1b38f jscript: Throw an exception when evaluating invalid identifier instead of on lookup failure. 2009-08-27 11:48:05 +02:00
Piotr Caban 561437ad98 jscript: Fixed var handling. 2009-08-10 15:02:22 +02:00
Piotr Caban 6afd53547e jscript: Lookup global members after script_disp. 2009-08-10 15:02:18 +02:00
Piotr Caban 9d23f8a771 jscript: Make compare2_values working with NULL BSTR's. 2009-08-06 12:02:09 +02:00
Piotr Caban c6412d98d9 jscript: Add "illegal assignment" error. 2009-07-24 11:51:11 +02:00
Piotr Caban d8e841ca50 jscript: Throw 'undefined object' error. 2009-07-22 14:42:50 +02:00
Piotr Caban f89fbb9b48 jscript: Throw TypeError in call_expression_eval. 2009-07-21 11:04:04 +02:00
Piotr Caban ea5c94f84d jscript: Fix create_exec_ctx implementation. 2009-07-16 11:38:48 +02:00
Piotr Caban b6b520e0ed jscript: Added call_expression_eval implementation for EXPRVAL_VARIANT values. 2009-07-14 10:46:32 +02:00
Piotr Caban b9be3bd766 jscript: Changed to_primitive implementation. 2009-07-09 17:47:40 +02:00
Michael Stefaniuc 981f733e41 jscript: Remove superfluous pointer casts. 2009-02-02 15:21:44 +01:00
Jacek Caban 775a6b21e9 jscript: Correctly handle SCRIPTITEM_GLOBALMEMBERS flag in identifier_eval. 2008-12-17 15:30:28 +01:00
Jacek Caban 4eb80d8d51 jscript: Delay setting named info if SCRIPTITEM_GLOBALMEMBER flag is not set. 2008-12-16 12:52:22 +01:00
Andrew Nguyen a6bdc47152 jscript: Fix some errors detected by Valgrind. 2008-12-10 11:32:31 +01:00
Alexandre Julliard f347b957f7 jscript: Make some functions and variables static. 2008-12-02 15:26:49 +01:00
Jacek Caban 1b51a43a7c jscript: Added SCRIPTITEM_ISVISIBLE flag implementation. 2008-11-05 10:55:29 +01:00
Alexandre Julliard 2aa1e71e77 jscript: Avoid a compiler warning. 2008-10-27 11:29:21 +01:00
Jacek Caban 30de39b2a7 jscript: Treat function expressions with identifier as function declarations. 2008-10-21 11:43:01 +02:00
Jacek Caban 4f6f8ef2d8 jscript: Added NaN handling to relational operators. 2008-10-17 11:45:43 +02:00
Jacek Caban f3e7637139 jscript: Added '%=' expression implementation. 2008-10-09 12:57:40 +02:00