Commit graph

408 commits

Author SHA1 Message Date
Seonghyun Kim
e78a2432cd Every value can be used in callDynamicImportRejected function
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-04-03 15:14:39 +09:00
Seonghyun Kim
32f1ebbd26 Fix bug in callConstructor with class
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2024-09-19 14:32:57 +09:00
Seonghyun Kim
1e1599aa09 Implement ValueRef::callConsturctor
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2024-09-13 16:14:22 +09:00
HyukWoo Park
5fcdf4e101 Fix generation of arguments object used in nested arrow functions and eval codes
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-09-05 10:38:47 +09:00
HyukWoo Park
1050ee4f5b Update TCO debug mode
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-06-05 11:06:25 +09:00
HyukWoo Park
77f0c49ad5 Add ESCARGOT_USE_EXTENDED_API build option to managed APIs used only for third party
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-05-14 10:08:26 +09:00
HyukWoo Park
f039511557 Fix calculation of outer limit of complex jump correctly
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-05-02 10:17:14 +09:00
HyukWoo Park
86525d1000 Fix object set inline caching method
* fix inline caching to insert a new cache item after validation
* refactor set inline caching method

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-03-12 13:50:42 +09:00
HyukWoo Park
023b7ea014 Implement general tail call optimization
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-02-20 17:16:10 +09:00
HyukWoo Park
c4ab1cf57d Merge tail call bytecodes
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-02-05 14:19:01 +09:00
Seonghyun Kim
c884c0605b Improve Object creation performance
* Convert rootedObjectStructureSet(Vector) into HashSet
* Use inline storage for properties in CreateObjectData

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2024-02-01 10:49:00 +09:00
Seonghyun Kim
2b6e3fcc7d Update object creation code from script
* Use ObjectCreatePrepare code everytime
* Implement simple inline-cache object structure in ObjectCreatePrepare

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2024-02-01 10:49:00 +09:00
Seonghyun Kim
bd95de3c46 Implement more things for CreateObjectPrepare operation
* It should support methods and spread element

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2024-01-18 16:40:37 +09:00
Seonghyun Kim
ded2d1145e Introduce new way of create object in script
* Prepare the property and key list before object creation
* The new way reduce size of object structure with transition

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2024-01-18 16:40:37 +09:00
HyukWoo Park
ca43b39174 Revise Symbol description getter methods
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-01-10 14:34:43 +09:00
Seonghyun Kim
1b9be45708 Add Generic-BlockInfo for reducing memory usage of BlockInfo
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-12-28 09:31:13 +09:00
Seonghyun Kim
b0543cfe9c Use realloc for ByteCodeGeneration
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-12-28 09:31:13 +09:00
HyukWoo Park
1a5b10b821 Simplify TCO check code
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-11-23 08:26:09 +09:00
HyukWoo Park
11d9427bb8 Update TCO to handle tail recursion with non-identical argument counts
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-11-23 08:26:09 +09:00
Seonghyun Kim
48150217a8 Divide ExectuionState to ExecutionState and ExtendedExecutionState(with rareData)
* This path reduce gc_malloc count for try-catch, with, generator, async function

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-11-20 13:31:17 +09:00
Seonghyun Kim
4f8582ec25 Compute stacktrace when creating ErrorObject
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-11-09 12:15:14 +09:00
HyukWoo Park
4581040747 Implement TCO for try-catch-finally block
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-11-08 15:16:42 +09:00
HyukWoo Park
49fd86eae8 Enable try operation APIs only for test mode
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-10-25 11:23:41 +09:00
HyukWoo Park
28f1f0fb0b Remove unused parameter in toBoolean method
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-10-25 11:23:41 +09:00
HyukWoo Park
f41a422302 Fix execution state traversal in stack tracing
* fix stack tracing to correctly add execution state in the middle of multiple state links
* remove redundant checks in stack tracing

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-10-17 17:46:14 +09:00
HyukWoo Park
f56ea256b4 Fix minor code defects
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-08-11 15:07:48 +09:00
HyukWoo Park
b980f68488 Fix minor code defects
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-07-25 10:47:49 +09:00
Seonghyun Kim
87fda52727 Fix crash with ObjectStructureWithMap and inline cache
If inline cache refers ObjectStructure, ObjectStructure should keep its contents.

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-07-20 10:58:53 +09:00
HyukWoo Park
7b207535e3 Fix minor defect
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-07-14 13:31:37 +09:00
Seonghyun Kim
4913754c32 Implement building with clang-cl
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-07-12 16:46:42 +09:00
Seonghyun Kim
a2886b8db1 Update source and test driver for running test262 on windows
* Update test262 driver for python3 and windows
* Update DateFormat for windows
* Fix compiler warnings on Win64

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-07-07 09:20:04 +09:00
Seonghyun Kim
34182762c1 Fix evaluation bug of UpdateExpression with MemberExpression
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-06-14 12:38:57 +09:00
HyukWoo Park
e84107d418 Remove unused parameters in ByteCode macro
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-05-31 12:49:24 +09:00
HyukWoo Park
e275ba66f5 Remove an unused variable in ALLOCA
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-05-31 12:49:24 +09:00
HyukWoo Park
7e68583b56 Fix a bug that interpreter reuses an argument buffer of caller in tail call
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-05-30 14:20:41 +09:00
HyukWoo Park
1fbf4872c7 Add a build option of tail call optimization
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-05-08 17:05:02 +09:00
HyukWoo Park
283873a291 Implement basic tail call optimization for normal function
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-05-03 11:18:25 +09:00
HyukWoo Park
0e0b759817 Include breakpoint bytecodes only for debugger mode
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-05-03 11:18:25 +09:00
HyukWoo Park
c8cc70d83e Update Stack Overflow checker and disabler
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-04-17 09:16:01 +09:00
Seonghyun Kim
dd010ab68e Divide Value::Value(double) into Value(DoubleToIntConvertibleTestNeedsTag, double) and Value(UnconvertibleDoubleToInt32 v)
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-04-06 16:41:23 +09:00
Seonghyun Kim
7414ebda02 Introduce new Value ctor for NaN, Infinity regard to fix arm clang issue
arm clang optimizer cannot generate correct code
with Value(std::numeric_limits<double>::quiet_NaN())
or Value(std::numeric_limits<double>::infinity())

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-04-04 14:12:32 +09:00
HyukWoo Park
bf3f885519 Remove cycle dependency from interpreter to parser
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-04-03 11:22:51 +09:00
HyukWoo Park
de4c7eb0db Eliminate duplicated code
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-03-28 16:17:00 +09:00
HyukWoo Park
2046b1faa9 Divide Interpreter module into Interpreter and InterpreterSlowPath
* to reduce the total size of Interpreter module

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-03-28 16:17:00 +09:00
HyukWoo Park
9f93022d78 Unlink circular dependency between runtime and parser source codes
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-03-28 16:17:00 +09:00
HyukWoo Park
22c8ca389e Fix minor code defects
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-03-06 15:22:53 +09:00
Seonghyun Kim
6002bb00b6 Fix Android build properties & fix interpreter for clang
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-01-12 17:04:03 +09:00
HyukWoo Park
81bcf2ed13 Enable threaded interpreter for arm64 architecture
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-01-05 10:44:31 +09:00
Seonghyun Kim
ea0c2c4c82 Reduce ObjectStructure memory usage
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2022-10-28 09:46:07 +09:00
HyukWoo Park
cb31d43274 Fix minor defects
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2022-10-24 10:51:24 +09:00