Commit graph

418 commits

Author SHA1 Message Date
Seonghyun Kim
ca7b289dd1 When closing the iterator, handle exceptions that occur when retrieving the return function correctly.
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-01-06 21:11:36 +09:00
Seonghyun Kim
fff09af8c3 Implement basic of await using statement
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-08-21 17:22:15 +09:00
Seonghyun Kim
26a2d9d39c Fix using statement bugs
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-08-21 17:22:15 +09:00
Seonghyun Kim
954b5bc77f Implement basic of using variable
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-08-21 17:22:15 +09:00
Seonghyun Kim
9b2f4723e8 Fix reading attribute code on dynamic import
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-07-03 14:27:34 +09:00
Seonghyun Kim
d92a795390 Update clang-format version to 20
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-07-01 18:39:28 +09:00
Seonghyun Kim
4c6220f22c Move tcoBuffer variable from ByteCodeInterpreter to ThreadLocal
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-06-23 17:31:19 +09:00
Seonghyun Kim
2c0c041c9a Improve TLS valriable r/w on ELF shared-libary
since calling __tls_get_addr performace is too bad, we should r/w TLS variables with special offset
users can turn on this feature with ESCARGOT_ENABLE_TLS_ACCESS_BY_ADDRESS flag

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-05-14 14:34:31 +09:00
Seonghyun Kim
7b95d4e9b8 free CreateObjectPrepare::CreateObjectData explicitly since CreateObjectData is big
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-05-12 09:56:33 +09:00
Seonghyun Kim
ecf2a586b7 Optimize StringBuilder for huge String
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-05-07 11:11:38 +09:00
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