Commit graph

91 commits

Author SHA1 Message Date
Máté Tokodi
97e8115ab1 Add basics of Chrome Devtools debugger support
- Use routing table for request dispatch in DebuggerHttpRouter, for
  handling choosing which debugger stack to use based on the http
  upgrade request:
    - DebuggerEscargot for the python debugger and VSCode
    - DebuggerDevtools for connecting to Chrome Devtools
- Parse mesasges with 16bit message size
- Reply to the first few messages chrome sends
- Refactor Debugger:
    - Rename DebuggerRemote to DebuggerEscargot
    - DebuggerEscargot and DebuggerDevtools inherit from
      DebuggerTcp which inherits from Debugger
- Add debugger info to README.md

Signed-off-by: Máté Tokodi <mate.tokodi@szteszoftver.hu>
2026-03-28 13:08:51 +09:00
Seonghyun Kim
af4c67a706 Implement VMInstanceRef::enqueueEvaluateJob
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-02-12 14:35:37 +09:00
Seonghyun Kim
6cae4dc1e2 Fix up WeakMap, WeakSet memory leak and add cctest to test WeakMap and WeakSet
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-07-11 13:44:38 +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
b1a3ccc12e Update Finalizer public API
Allow multiple register of callbacks

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-06-02 12:45:48 +09:00
Seonghyun Kim
80141b3e71 Implement PersistentRefHolder::{setWeak, isWeak, clearWeak}
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-05-30 10:21:27 +09:00
HyukWoo Park
a57df7576b Fix memory leaks in Debugger
* shared structure `BreakpointLocationsInfo` between debuggger and ByteCodeBlock can cause memory leaks
* correctly delete each `BreakpointLocationsInfo`

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2025-01-17 10:44:49 +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
fdda755329 Fix not to store duplicated properties in Template
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-04-24 15:43:07 +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
HyukWoo Park
463d73023a Fix tests according to the update in stack tracing
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2023-10-17 17:46:14 +09:00
Seonghyun Kim
74735f9029 Update public API for using NewTarget from outside of escargot
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2023-07-18 18:58:52 +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
d698343196 Remove busy waiting & fix memory bug
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2022-09-29 10:34:59 +09:00
Zoltan Herczeg
3a0b874a7e Implement JSON module parsing
Currently only the import statement is supported

Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2022-09-13 16:46:36 +09:00
HyukWoo Park
ebd5a42641 Fix backtrace info within eval code
* collect backtrace info including eval codes

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2022-05-20 08:44:14 +09:00
Seonghyun Kim
04eb482d1e Add Object::constructorName API
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2022-05-03 19:05:38 +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
Zoltan Herczeg
49c40cd26e Implement object store in the debugger
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2022-04-12 14:13:56 +09:00
Zoltan Herczeg
21d0e6aa42 Implement scope chain property enumeration in the debugger
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2022-03-28 17:15:34 +09:00
HyukWoo Park
a84b75d407 Update ErrorCreationCallback handling to ignore adding stackdata into stack property
* if ErrorCreationCallback is registered and this callback already inserts `stack` property for evert created ErrorObject,
  we just ignore adding `stack` data into ErrorObject

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2022-03-28 10:38:47 +09:00
Seonghyun Kim
91223b79ab Fix symbol lookup error on FunctionTemplate
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2022-03-21 09:00:40 +09:00
HyukWoo Park
2c83b022f3 Update PromiseRejectCallback for PromiseHandlerAddedAfterReject event
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2022-03-16 14:46:39 +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
Gergo Csizi
38ec2cbefa Fix crash in the debugger
If Escargot is compiled with debugger but run without the debug server
then the Escargot will crash. This patch will fix this problem.

Signed-off-by: Gergo Csizi gergocs@inf.u-szeged.hu
2022-02-22 10:06:56 +09:00
Zoltan Herczeg
92a8db40c8 Implement scope chain retrieval
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2022-02-08 18:53:38 +09:00
HyukWoo Park
913bcc7882 Rename StackTrace structures
* to clearly distinguish StackTraceData and StackTraceDataVector

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2022-01-18 15:28:21 +09:00
HyukWoo Park
bd35e41168 Add setName API of FunctionObject
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2022-01-13 13:24:09 +09:00
Zoltan Herczeg
a80e5f285c Implement eval in debugger
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2022-01-03 17:07:48 +09:00
HyukWoo Park
e2758f5a2c Add createFunction API with source name parameter
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2022-01-03 11:28:48 +09:00
Seonghyun Kim
f44b380f16 Implement --accept-timeout option on DebuggerRemote
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2021-12-29 15:58:08 +09:00
Seonghyun Kim
de02b5453f Add callee into StackTraceData
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2021-12-28 10:31:15 +09:00
Zoltan Herczeg
8ba5e690cb Implement backtrace getting in the Debugger API
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2021-12-21 17:27:21 +09:00
Zoltan Herczeg
8d584f10a0 Implement stop at breakpoint in C-API debugger
Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2021-12-16 10:59:47 +09:00
Zoltan Herczeg
a481cd6dd8 Start creating a debugger API
- The debugger callbacks are implemented as class
- Using std::vector for storing data

Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
2021-12-10 16:46:22 +09:00
HyukWoo Park
ab15bd5574 Implement setIndexedPropertyHandler for ObjectTemplate
* rename data related to PropertyHandler
* refactoring ObjectWithPropertyHandler to handle NamedProperty and IndexedProperty both
* add cctest

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-11-17 17:22:35 +09:00
HyukWoo Park
fa052c8902 Refactoring ObjectTemplate's PropertyHandler
* update to common PropertyHandler data and strucuture to represent IndexedProperty and NamedProperty both
* check property name in each ObjectWithPropertyHandler method

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-11-17 17:22:35 +09:00
HyukWoo Park
c295ee69e1 Refactoring createFunctionSourceFromScriptSource
* use memcpy for string merging
* remove unused functions

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-11-10 14:52:54 +09:00
HyukWoo Park
f47def1f22 Replace TemplatePropertyName with existing ObjectStructurePropertyName
* usually property name is delivered as Value format
* replace `TemplatePropertyName` with `ObjectStructurePropertyName` to handle Value format nicely

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-11-10 14:51:47 +09:00
HyukWoo Park
30f3b3a348 Revise createFunctionSourceFromScriptSource
* add simple syntax checker method in parser to check parameters and body string
* fix it to check parameters and body string seperately
* add several TCs for this patch too

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-11-01 17:03:58 +09:00
HyukWoo Park
78b1aa7d2e Update lint checker to include cctest file
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-10-29 12:30:32 +09:00
HyukWoo Park
01d6ed1047 Fix Template to inherit parent's NativeDataAccessorProperties
* according to api, ObjectTemplate should inherit its parent's NativeDataAccessorProperties of InstanceTemplate too

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-10-18 15:16:25 +09:00
Seonghyun Kim
848873c6c7 Implement special case for Function constructor with ReloadableString
* Add new api for Function::create

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2021-10-18 13:34:28 +09:00
Ryan Hyun Choi
e479b456a9 Fix SharedArrayBuffer's create()
* Enable threading in api-test
* Add a SharedArrayBuffer test

Signed-off-by: Ryan Choi <ryan.choi@samsung.com>
2021-10-14 16:43:10 +09:00
Seonghyun Kim
a30b318b4a Implement GenericIteratorObject
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2021-09-29 16:15:21 +09:00
HyukWoo Park
843f4af78e Assign source name for dynamically created functions
* get source name through outer lexical scope

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-09-27 16:37:12 +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
HyukWoo Park
f864d828fb Refactoring BackingStore structure
* divide BackingStore structure into NonShared and Shared
* update BackingStoreRef API to clarify its usage

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2021-09-14 15:54:17 +09:00
Seonghyun Kim
7692878218 Add try-catch-finally condition variable into ExecutionState
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2021-09-09 15:17:12 +09:00