Commit graph

2,408 commits

Author SHA1 Message Date
Seonghyun Kim
92ee65bc0c Update LabelledStatementNode to pass label to child loop
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-06-16 15:35:01 +09:00
Seonghyun Kim
07cdae7850 Update test cases
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-06-16 15:35:01 +09:00
Seonghyun Kim
ef525f337f Add programCount range check for edge case in blockOperation
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-06-15 11:50:30 +09:00
Ádám László Kulcsár
29fdbc741f Improve eval in devtools
Fix accidental deadlock possible inside the debugger and improve formatting when inspecting arrays.

Signed-off-by: Ádám László Kulcsár <adam.kulcsar@szteszoftver.hu>
2026-06-10 10:48:28 +09:00
Máté Tokodi
ebe3761308 Add support for scope variables and call stack in the Devtools Debugger
Signed-off-by: Máté Tokodi <mate.tokodi@szteszoftver.hu>
2026-06-10 10:44:10 +09:00
Ádám László Kulcsár
c423a4bfa0 Implement eval in Devtools debugger
Signed-off-by: Ádám László Kulcsár <adam.kulcsar@szteszoftver.hu>
2026-06-01 23:56:51 +09:00
epsilon
4b40f92aba Fix OOB read in string::rfind 2026-05-27 19:21:59 +09:00
Seonghyun Kim
779f6bedf5 Check stack overflow in ProxyObject::getPrototype, ProxyObject::getPrototypeObject
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-27 11:31:45 +09:00
Seonghyun Kim
d581b27af6 Check overflow when TypedArrayObject allocating for 32-bit systems
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-27 11:31:45 +09:00
Seonghyun Kim
3b43994a7d Don't assume spread element is fast mode
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-27 11:31:45 +09:00
Seonghyun Kim
299a7ff451 Fix crash in ArrayBuffer transfer
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-27 11:31:45 +09:00
Seonghyun Kim
36f5fb5836 Add size checking on ArrayBuffer.prototype.transfer
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-21 16:15:10 +09:00
Ádám László Kulcsár
d6aae0777f Fix bug with Devtools filenames
Fix bug where filenames could contain memory garbage.

Signed-off-by: Ádám László Kulcsár <adam.kulcsar@szteszoftver.hu>
2026-05-14 19:57:40 +09:00
Seonghyun Kim
590345cc62 Update vendor test
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-14 13:33:33 +09:00
Seonghyun Kim
c02c6595be Handle oom explicitly
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-14 13:33:33 +09:00
Seonghyun Kim
166fa7c66b Disable GC on c++ catch block w/ASAN
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-14 13:33:33 +09:00
Seonghyun Kim
3cf7d60b43 Fix memory error when FinalizationRegistry cleanup callback throws
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-14 13:33:33 +09:00
Seonghyun Kim
2bbd27caac Add stack overflow check in ProxyObject::ownPropertyKeys
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-14 13:33:33 +09:00
Seonghyun Kim
78e5e333b9 Compute ByteCodeLOC only !NDEBUG && ESCARGOT_DEBUGGER in ByteCodeBlock::pushCode
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-14 13:33:33 +09:00
Seonghyun Kim
22bedcec9e In Evaluator::EvaluatorResult::resultOrErrorToString error can be null even if the task was successful
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-14 13:33:33 +09:00
Seonghyun Kim
aa727d22a1 Use PointerFree allocatior for FunctionContextVarMap
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-14 13:33:33 +09:00
Seonghyun Kim
121d2fefca Fix StringObject::defineOwnProperty
* Check if this is an index property within the string length due to proxy object

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-14 13:33:33 +09:00
Seonghyun Kim
2e9a6393b9 In InterpreterSlowPath::arrayDefineOwnPropertyBySpreadElementOperation,
setArrayLength can convert the array to non-fast mode when length exceeds thresholds

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-14 13:33:33 +09:00
Seonghyun Kim
685a71c3d1 Check if the size exceeds the maximum allowed size for TypedArray construction
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-14 13:33:33 +09:00
Seonghyun Kim
78576a5af9 Update vendor test
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-14 13:33:33 +09:00
Seonghyun Kim
c8588c323c prevent stack overflow when parsing huge json array
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-14 13:33:33 +09:00
Seonghyun Kim
2cc649c97e Use correct index in DataViewObject::setViewValue
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-14 13:33:33 +09:00
Seonghyun Kim
98f54274d1 Fix buffer access bug in builtinTypedArrayCopyWithin
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-14 13:33:33 +09:00
SAY-5
0a79d6c1f7 Fix out-of-bounds read in lexer comment/hashbang skipping
skipSingleLine, skipSingleLineComment, and skipMultiLineComment incremented
the source index and then called peekCharWithoutEOF() without re-checking
eof(), causing a one-byte heap read past the source buffer when the input
ends with a bare \r or a trailing '*'. Guard each follow-up peek with eof().

Fixes #1568

Signed-off-by: SAY-5 <say.apm35@gmail.com>
2026-05-12 15:57:50 +09:00
Ádám László Kulcsár
634fe864d7 Add -Wno-maybe-uninitialized build option for GCC 16
Signed-off-by: Ádám László Kulcsár <adam.kulcsar@szteszoftver.hu>
2026-05-11 20:40:32 +09:00
Ádám László Kulcsár
475149426f Implement escargot debugger restart support
Implement restart in escargot and python debugger.
Also add debugger test.

Signed-off-by: Ádám László Kulcsár <adam.kulcsar@szteszoftver.hu>
2026-05-07 16:12:31 +09:00
Ádám László Kulcsár
7683468efb Add heap snapshots to devtools debugger
Signed-off-by: Ádám László Kulcsár <adam.kulcsar@szteszoftver.hu>
2026-04-29 09:37:05 +09:00
Máté Tokodi
48eb4b6af9 Add support for breakpoints in the Devtools Debugger
- Add, remove breakpoints
- Resume execution
- Step Into, Step Out, Step Over
- Deactivate/Reactivate all breakpoints

Signed-off-by: Máté Tokodi <mate.tokodi@szteszoftver.hu>
2026-04-28 16:43:39 +09:00
Ádám László Kulcsár
e9833cd791 Rework python debugger tester
Delete debugger_tester.sh script and rewrite it in python. Also add option to run individial tests.

Signed-off-by: Ádám László Kulcsár <adam.kulcsar@szteszoftver.hu>
2026-04-28 16:42:06 +09:00
Ádám László Kulcsár
769e86e32a Add ability to take heap snapshots with python debugger
Signed-off-by: Ádám László Kulcsár <adam.kulcsar@szteszoftver.hu>
2026-04-23 11:35:55 +09:00
Seonghyun Kim
ad3844437e Update ArrayBuffer::isDetachedBuffer check
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-04-23 11:35:23 +09:00
Ádám László Kulcsár
633fe63795 Add funcitonality to take heap snapshots
Signed-off-by: Ádám László Kulcsár <kuladam@inf.u-szeged.hu>
2026-04-16 15:42:23 +09:00
Seonghyun Kim
e52f0ce0cf Fix read private property on inner object method
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-04-16 09:25:12 +09:00
Seonghyun Kim
2624608567 Update clang compile option for old clang
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-04-16 09:25:12 +09:00
Ádám László Kulcsár
0ac274d1fc Add correct debugging to .mjs files
Add breakpoint on the start of the first source code line so that module file imports can be debugged.
Also extend debugger test script since Escargot uses realpaths with modules.

Signed-off-by: Ádám László Kulcsár <kuladam@inf.u-szeged.hu>
2026-04-14 21:35:29 +09:00
Máté Tokodi
ab7a13e089 Fix Devtools debugger websocket buffer handling
The type of `m_receiveBufferFill` was uint8_t causing it to roll over
when parsing longer messages from Devtools, causing message data to be
truncated incorrectly.

Signed-off-by: Máté Tokodi <mate.tokodi@szteszoftver.hu>
2026-04-09 12:27:01 +09:00
Seonghyun Kim
f25f05faca Validate input on CodeCacheReader
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-04-08 10:00:03 +09:00
Seonghyun Kim
a7f9695bf3 Check buffer size before reading buffer on CodeCacheReader
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-04-08 10:00:03 +09:00
Seonghyun Kim
50215a5ce8 Check wrong input in Serializer::deserializeFrom
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-04-08 10:00:03 +09:00
Seonghyun Kim
13e3a62312 Disable 32-bit pointer using with asan since it makes bdwgc related error
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-04-08 10:00:03 +09:00
Seonghyun Kim
2156cfa5b8 Fix compiler issue with int128(gcc-10 upper)
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-04-08 10:00:03 +09:00
Seonghyun Kim
b4f2b24e4a Fix compile error on clang-20
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-04-08 10:00:03 +09:00
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
Hyukwoo Park
989e6922b6 Remove duplicated parameter-check methods
Signed-off-by: Hyukwoo Park <hyukwoo.park@jbnu.ac.kr>
2026-03-13 13:27:59 +09:00
Seonghyun Kim
6ebbd22c06 Optimize very big object expression through big bloom filter
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-03-10 16:01:03 +09:00