Commit graph

136 commits

Author SHA1 Message Date
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
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
e9cec1d0b4 Make option for maxCompiledByteCodeSize in VMInstance
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-11-21 14:49:31 +09:00
Seonghyun Kim
195039d901 Revise computing and using stack limit
* Compute stack limit correctly through pthread API or Windows internal API
* Store stack limit in TLS(or global) not a VMInstance or ExecutionState

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-11-20 13:31:17 +09:00
HyukWoo Park
730853fecb Replace wasm engine with walrus
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-09-12 14:52:29 +09:00
Seonghyun Kim
0596de75c8 Update windows build
* using cmake instead of maintain another files for windows
* delete own ICU build files for windows
* Fix some bugs running on windows

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-06-22 13:31:23 +09:00
Seonghyun Kim
3aaded1210 Use ucal_* API instead of vzone_* API of ICU
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-06-19 11:37:25 +09:00
Seonghyun Kim
9a29ca809d Use getprop command instead of ICU for getting system timezone
* Old version of ICU doesn't return IANA timezone id when call ucal_getDefaultTimeZone

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-04-24 16:45:45 +09:00
Seonghyun Kim
7a98a9ba52 Update timezone and locale codes
* Use ICU function for reading default system timezone
* Update default locale reading logic(remove POSIX postfix & ignore 'C' locale)
* Refactor global timezone, vzone, tzname codes

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-04-20 20:48:23 +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
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
Seonghyun Kim
8d4513054d Implement concurrent multithread support for java
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-03-07 14:32:19 +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
461cfab115 Reimplement JNI memory management
* Use PhantomReference and ReferenceQueue instead of finalizer.
  finalizer could be called by another thread like FinalizerDaemon and it is deprecated.

* Remove NativePointerHolder::destroy function.

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-03-03 17:16:36 +09:00
HyukWoo Park
86b792ebe3 Enable build for Mac OS
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-02-02 22:16:31 +09:00
Seonghyun Kim
d698343196 Remove busy waiting & fix memory bug
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2022-09-29 10:34:59 +09:00
Seonghyun Kim
682f176d6d Implement Atomics.waitAsync
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2022-09-29 10:34:59 +09:00
HyukWoo Park
d3f6ef74f9 Add ErrorThrowCallback API
* ErrorThrowCallback is invoked when an Error is thrown
* ErrorThrowCallback overwrites the result of ErrorCreationCallback

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2022-04-13 15:22:59 +09:00
HyukWoo Park
de9c7cefd9 Mark String::emptyString as source of AtomicString
* String::emptyString is the default string value of empty AtomicString
* so, mark emptyString as source of AtomicString too

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2022-03-28 10:36:37 +09:00
HyukWoo Park
1b38eeca32 Update Debugger to selectively generate debugging byte codes
* we can choose JS source code for debugging target
* selectively generating debugging byte code (breakpoint)
* add debugger init option (--skip=) to exclude certain source code from debugging
* rename debugger functions
* explicitly present the python version for debugger tool

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2022-03-25 17:41:23 +09:00
Seonghyun Kim
5d984c935c Implement fast path of get symbol from object.
the path is used on Value::instanceOf and Value::toPrimitiveSlowCase

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2022-03-16 14:46:17 +09:00
Seonghyun Kim
f79a169daa Improve enumerate performance
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2022-03-14 14:32:57 +09:00
HyukWoo Park
716ff17dd7 Update PromiseRejectCallback
* PromiseRejectCallback is invoked when a Promise is rejected but it does not have any reject handler

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2022-03-10 15:35:36 +09:00
HyukWoo Park
375e2b7dc2 Update version of WASM engine
* enable exception in wabt engine because Escargot function invoked from wasm function could trigger an exception
* fix compile warning
* fix Thread to be reclaimed after each wasm function call
* extend wasm gc interval

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2022-02-22 10:06:37 +09:00
SeongHyun Kim
0af32fafde Implement build for Windows UWP
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2022-01-12 13:44:04 +09:00
HyukWoo Park
f0b058ec5b Fix ByteCodeBlock nullify in gc callback
* we need to reset ByteCodeBlock only for normal functions
* add assertion to check invalid operation

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2022-01-11 17:31:48 +09:00
SeongHyun Kim
110359e4db Update source & build files for windows
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
Signed-off-by: SeongHyun Kim <sh8281.kim@samsung.com>
2021-10-25 18:48:10 +09:00
HyukWoo Park
aef7ba0c98 Update GC event callback registration
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-10-07 08:39:04 +09:00
Seonghyun Kim
5185932e6d Implement Intl.ListFormat
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2021-09-27 16:40:21 +09:00
HyukWoo Park
07c91a33e6 Add callback for Error creation
* registered callback is triggered for each Error constructor call

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-09-14 16:39:15 +09:00
Seonghyun Kim
155d9b6e95 Implement constructor and getResolvedOptions of Intl.DisplayNames
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2021-09-09 09:41:01 +09:00
HyukWoo Park
a91417a38c Reorganize builtin and Intl source files
* make builtins and intl directory

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-08-06 13:16:58 +09:00
HyukWoo Park
13c774e49f Add ThreadLocal structure
* ThreadLocal manage global values allocated for each thread
* Update PlatformRef to allow users to add thread-local custom data

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-07-27 16:40:08 +09:00
HyukWoo Park
98bc107937 Add Global object shared by all threads
* Platform is also managed in Global object
* Global has life time same to program

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-07-27 16:40:08 +09:00
Seonghyun Kim
77a68579a5 Implement per thread isolating
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2021-07-15 17:47:41 +09:00
HyukWoo Park
ac2bb84b6f Update PromiseHook
* PromiseHook is triggered for each Promise event
* PromiseHook is registered and used by third party app

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-07-15 10:54:18 +09:00
Seonghyun Kim
1fbaf749bf Implement ObjectPrivateMemberStructre for reducing memory usage
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2021-07-01 16:36:39 +09:00
HyukWoo Park
b504600e41 Add collecting heap process for WASM
* periodically check and collect WASM heap using GC event

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-05-17 15:28:03 +09:00
Seonghyun Kim
5192d33431 Object Data Accessor property can be act like JavaScript getter setter
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2021-05-03 19:02:49 +09:00
HyukWoo Park
5517dbf80a Remove unused variables and functions
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-03-29 09:30:06 +09:00
HyukWoo Park
8f4b125b22 Revise Jump bytecode and JumpFlowRecord for CodeCache
* remove JumpByteCode and add JumpFlowRecord which has no pointer value
* simplify JumpFlowRecord data caching
* fix coverity issue
* add log message for code cache

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-03-18 10:24:44 +09:00
HyukWoo Park
fabdc578d9 Fix to get the code cache directory through api function
* fix coverity issue too

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-03-16 11:48:02 +09:00
HyukWoo Park
e9afc5c595 Update VMInstance global variables
* manage global variables as VMInstance static members
* access global variables through VMInstance static functions

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-03-15 15:24:50 +09:00
HyukWoo Park
2b775dc2f5 Revise BigInt not to hold VMInstance pointer
* bf_context_t is now defined as a global variable and maintained during the runtime
* VMInstance::finalize is invoked at the end of program to guarantee the life time of bf_context_t

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-03-10 12:29:55 +09:00
bence gabor kis
160cb37300 Update name and length property order
also fixed few test262 test-case

Signed-off-by: bence gabor kis <kisbg@inf.u-szeged.hu>
2021-02-22 12:17:24 +09:00
HyukWoo Park
90522697eb Refactoring Job
* all types of job now handled in the task queue

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-02-16 09:34:31 +09:00
Seonghyun Kim
d088f0416e class should define name before define prototype
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2021-01-28 14:37:35 +09:00
HyukWoo Park
29c70f7532 Update clang-format version to 6.0
* coding convention fixed following the new clang-format

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2020-12-18 11:13:15 +09:00