Commit graph

315 commits

Author SHA1 Message Date
Seonghyun Kim
bab3a57975 Fix RELEASE_ASSERT_NOT_REACHED on CoverInitializedName used as a value
A CoverInitializedName such as `{ a = 0 }` (object shorthand with default) is
only valid when the enclosing object literal is refined into a destructuring
pattern. When such an object literal is instead consumed as a real value -- the
base of a member access, call, computed access, or tagged template, e.g.
`( {... { a = 0 }. b = 1 } )` -- the pending CoverInitializedName error was
discarded by a later assignment, so no SyntaxError was raised and the
AssignmentPattern property value reached bytecode generation, hitting
RELEASE_ASSERT_NOT_REACHED in Node::generateExpressionByteCode.

Report the pending CoverInitializedName as an early SyntaxError in the two
LeftHandSideExpression member-access loops the moment the base is consumed as a
value, since it can no longer be refined into a pattern.

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-06-18 19:02:02 +09:00
Seonghyun Kim
181019c0c3 Reject object binding pattern rest followed by a binding pattern (Issue #1334)
BindingRestProperty in an object binding pattern only accepts a
BindingIdentifier, unlike BindingRestElement in an array binding pattern
which also accepts a BindingPattern. Throw a SyntaxError when `...` is
followed by `{` or `[` in a declaration context.

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-06-18 16:09:00 +09:00
Seonghyun Kim
c37e2b4851 A class definition is always strict mode
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-06-18 10:05:18 +09:00
Seonghyun Kim
2dee22f5c7 Update test/vendortest with Issue #1577 regression tests
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-06-17 10:06:57 +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
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
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
78576a5af9 Update vendor test
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-05-14 13:33:33 +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
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
ea826db76a Add thread memory usage test case
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2026-02-04 17:21:25 +09:00
Seonghyun Kim
2325f6fc64 Improve Temporal + intl402
* Update test262
* Apply basic of https://tc39.es/proposal-intl-era-monthcode/

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-12-15 18:43:33 +09:00
Seonghyun Kim
c3fadf767b Implement %IteratorPrototype% [ @@dispose ] and %AsyncIteratorPrototype% [ @@asyncDispose ]
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-08-21 17:22:15 +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
8ae1f976d9 Update yarr version
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-06-30 12:53:21 +09:00
HyukWoo Park
a9a2335ef5 Update test262
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2025-06-25 09:53:04 +09:00
Seonghyun Kim
595971175c Allow template literal with new line on return statement
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-06-05 22:23:12 +09:00
Seonghyun Kim
72205bb381 Fix super property set error in class
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-06-02 12:45:48 +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
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
e89d796bb1 When init class, init class methods first
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-04-16 15:15:17 +09:00
Seonghyun Kim
5a7f8d6114 Fix script parser error with class parsing
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2025-04-06 16:14:09 +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
HyukWoo Park
fdec6267da Update test262 version
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-12-10 15:48:37 +09:00
HyukWoo Park
a02c48d286 Fix bugs in RegExp
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-12-02 17:51:47 +09:00
HyukWoo Park
9df6de10a2 Fix a parsing bug in nullish-coalescing
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-11-07 17:49:03 +09:00
Seonghyun Kim
2f3ba80a08 Fix one of assignment optimizer bug
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2024-10-21 10:56:13 +09:00
HyukWoo Park
cd4b7ddbea Fix minor parsing errors
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-09-27 08:16:34 +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
HyukWoo Park
91eef62f47 Refactor parsing of optional chaining
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-09-19 13:48:53 +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
0434ba9237 Fix this binding error within eval and arrow function
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-09-12 20:20:07 +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
Seonghyun Kim
2ec730bed4 Implement basic of Iterator helper and Iterator.prototype.map
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2024-08-09 15:40:40 +09:00
HyukWoo Park
f07651568b Update wasm-js testsuite
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-07-18 16:15:23 +09:00
HyukWoo Park
6c0926c4c0 Fix out-of-bound source code accesses in Lexer
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-07-16 15:47:40 +09:00
Seonghyun Kim
4c2efa224e Implement StackCheck in yarr
* Move many WTF class from WTFBridge to class file

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2024-07-16 14:25:28 +09:00
HyukWoo Park
01bfe58f7f Fix wrong memory allocation of ToStringRecursionPreventer in VMInstance
* fix it to make GC correctly trace ToStringRecursionPreventer structure

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-07-05 10:21:05 +09:00
Seonghyun Kim
18ec8bc1fc Fix bug when resize size of ArrayBuffer from zero
Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2024-07-04 13:35:01 +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
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
5a5238049c Implement Immutable Prototype Exotic Object
Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
2024-04-03 16:49:20 +09:00