Commit Graph

434 Commits

Author SHA1 Message Date
Jacek Caban 9daafa87bc jscript: Access arguments directly from stack in arguments object if possible.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-03 11:13:50 -05:00
Jacek Caban b652a9787c jscript: Build local references map in compiler and use it to search the scope.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-03 11:13:50 -05:00
Jacek Caban da02140b43 jscript: Allow accessing arguments values directly from stack.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-02 16:18:05 -05:00
Jacek Caban abba963006 jscript: Use exprval_t to represent property references passed on JS stack.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-02 16:18:04 -05:00
Jacek Caban 7af8330e93 jscript: Store exception code in exprval_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-02 16:18:04 -05:00
Jacek Caban b0dcbbdbee jscipt: Use passed copy of arguments if they are alread at the top of the stack.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 11:59:30 +09:00
Jacek Caban 5e4d3826ec jscript: Store function arguments on JS stack and transfer them to variable object only when needed.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 11:59:27 +09:00
Jacek Caban be37b894a4 jscript: Use IDispatch* as iface_to_jsdisp argument type.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-20 23:04:53 +09:00
Jacek Caban fa726bed4d jscript: Use already running interpreter for execution new expressions.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-30 11:54:37 +09:00
Jacek Caban 2d35954adb jscript: Use already running interpreter for execution expressions that are source functions.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-30 11:54:35 +09:00
Jacek Caban 66632091bf jscript: Use already running interpreter for execution of member source function.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-30 11:54:33 +09:00
Jacek Caban 35133dbe58 jscript: Find Function.arguments on the stack instead of storing it in FunctionInstance object.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-29 10:40:06 +09:00
Jacek Caban 42e90ca592 jscript: Moved arguments object destuction to interpreter.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-29 10:40:04 +09:00
Jacek Caban cb317ed5b8 jscript: Moved more return object logic to enter_bytecode loop.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-29 10:40:01 +09:00
Jacek Caban 8c1526a865 jscript: Keep reference to bytecode in call_frame_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-29 10:39:59 +09:00
Jacek Caban db0fee5e9d jscript: Merge setup_call_frame into exec_source.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-29 10:39:57 +09:00
Jacek Caban d66b5bf4cb jscript: Moved constructor return logic to interpreter.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-29 10:39:55 +09:00
Jacek Caban 2bb824b7c9 jscript: Sore is_global as a flag.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-29 10:39:53 +09:00
Jacek Caban 4bef35fd48 jscript: Clear stack outside OP_call* handlers.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-29 10:39:51 +09:00
Jacek Caban 51f65ec974 jscript: Clear stack outside OP_new handler.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-29 10:39:49 +09:00
Jacek Caban d08036120a jscript: Don't assume that ret value is cleared when it's not set explicitly.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-29 10:39:47 +09:00
Jacek Caban 32d9c59868 jscript: Get rid of no longer needed exec_ctx_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-26 12:07:17 +09:00
Jacek Caban 00ce4419b4 jscript: Store is_global flag in call_frame_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-26 12:07:15 +09:00
Jacek Caban 932ffa0de9 jscript: Store return value in call_frame_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-26 12:07:12 +09:00
Jacek Caban b8fb19f160 jscript: Store variable object in call_frame_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-26 12:07:10 +09:00
Jacek Caban 0db7059663 jscript: Store this object in call_frame_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-26 12:07:07 +09:00
Jacek Caban 0224f1829b jscript: Moved stack from execution context to script context.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-26 12:07:05 +09:00
Jacek Caban 9e03bb2ece jscript: Pass script context instead of execution context to op handlers.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-26 12:07:02 +09:00
Jacek Caban 400435dbe3 jscript: Store entry scope chain in call_frame_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-25 20:09:50 +09:00
Jacek Caban 49ecfa950b jscript: Store current scope chain in call_frame_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-25 20:09:45 +09:00
Jacek Caban 0e32c09901 jscript: Store stack base in call_frame_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-25 20:09:38 +09:00
Jacek Caban a120ecbefc jscript: Store instruction pointer in call_frame_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-25 20:09:31 +09:00
Jacek Caban fa5d9b3db1 jscript: Store exception frame in call_frame_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-25 20:09:26 +09:00
Jacek Caban 53ecdb6549 jscript: Added new helpers for jumps.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-25 20:09:20 +09:00
Jacek Caban 132ff14d37 jscript: Store function description in call_frame_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-25 20:09:15 +09:00
Jacek Caban 89ad1094ea jscript: Store bytecode pointer in call_frame_t.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-25 20:09:11 +09:00
Jacek Caban 8a17cf89fb jscript: Keep track of active call in a separated structure.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-25 20:09:07 +09:00
Jacek Caban 061592a205 jscript: Removed no longer used argument from exec_source.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-24 23:02:20 +09:00
Nikolay Sivov fca682435d jscript: Return error code disp_delete() failed with (PVS-Studio).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-15 19:47:55 +09:00
Jacek Caban 170bb3771f jscript: Added beginning support for 'automagic' event binding feature. 2015-06-03 14:47:12 +09:00
André Hentschel dec5bbbec4 jscript: Remove unused code (Clang). 2014-11-25 19:49:40 +01:00
Jacek Caban 615f6a6e8b jscript: Move parser related declarations to separated header. 2014-09-30 17:40:10 +02:00
Jacek Caban 2d752d1a93 jscript: Fixed uninitialized variable access in interp_end_finally. 2014-04-29 11:27:02 +02:00
Jacek Caban 20530c55b8 jscript: Use helpers to access string buffer in engine.c. 2013-03-27 12:13:39 +01:00
Jacek Caban 4ece40f86b jscript: Return buffer pointer separately from jsstr_t from jsstr_alloc_len. 2013-03-25 14:10:08 +01:00
Jacek Caban 67d86e630e jscript: Use BSTR also for pure IDispatch call in disp_get_id. 2013-03-11 17:01:50 +01:00
Jacek Caban d7f24b0956 jscript: Reuse static instance of 'undefined' string. 2013-03-08 18:11:05 +01:00
Jacek Caban f0c0c14241 jscript: Moved string concatenation to helper function. 2012-12-18 12:37:08 +01:00
Jacek Caban 4dbd777de2 jscript: Fixed deleting nonexistent identifiers. 2012-12-17 20:31:17 +01:00
Jacek Caban 0f0f76ce6b jscript: Allow poping multiple stack values at the time. 2012-12-14 11:54:47 +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 e8766bb66f jscript: Added more useful debug traces. 2012-12-07 12:04:25 +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 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 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 e374449e30 jscript: Get rid of unused hres.
Spotted by Michael Stefaniuc.
2012-09-20 19:23:16 +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 c4df88b7fa jscript: Use helper to access jsval_t type. 2012-09-17 18:30:14 +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 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
Michael Stefaniuc 37a9183d68 jscript: Avoid FALSE:TRUE conditional expressions. 2012-08-13 17:29:31 +02:00
Jacek Caban f8383c3417 jscript: Don't use DISPPARAMS for internal arguments. 2012-06-25 18:12:51 +02:00
Jacek Caban 1dd4cbc491 jscript: Pass jsthis internally without using DISPPARAMS. 2012-06-21 18:04:52 +02:00
Jacek Caban 1532037bcd jscript: Use num_set_int where possible. 2012-06-20 19:21:05 +02:00
Jacek Caban 4cfab07748 jscript: Always store numeric literals as double. 2012-06-20 19:20:57 +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 424b63119c jscript: Use stack_push_int in interp_bneg. 2012-04-27 12:02:28 +02:00
Jacek Caban 97b44da746 jscript: Store function parameters in function_code_t. 2012-04-25 12:17:01 +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
Frédéric Delanoy 69f3d23045 jscript: Assorted spelling fixes. 2012-04-18 13:59:44 +02:00
Jacek Caban 0b0e34ab39 jscript: Addded parameterized property assignment support. 2012-04-17 19:19:03 +02:00
Jacek Caban bf066791e0 jscript: Avoid cleaning an uninitialized variable. 2012-04-04 19:02:49 +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 451169fb93 jscript: Return double instead of VARIANT from to_number. 2012-03-27 11:43:01 +02: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 825eb76321 jscript: Compile all function from given source in one run. 2012-03-13 10:30:27 +01:00
Jacek Caban 9f83c6061f jscript: Store bytecode_t in exec_ctx_t. 2012-03-13 10:30:18 +01:00