Skip to content

feat(engine): protocolo .next() em values()/keys()/entries() de Array, Map e Set - #2046

Merged
MarcosBrendonDePaula merged 1 commit into
mainfrom
feat/native-iterator-next-protocol
Jul 31, 2026
Merged

feat(engine): protocolo .next() em values()/keys()/entries() de Array, Map e Set#2046
MarcosBrendonDePaula merged 1 commit into
mainfrom
feat/native-iterator-next-protocol

Conversation

@MarcosBrendonDePaula

Copy link
Copy Markdown
Member

O problema

[1,2].values().next() falhava em compilação:

no Registry entry for `Array.next(0 args)`

values()/keys()/entries() devolvem um array materializado, e Array não tem linha de Registry para next. for-of e spread funcionavam (consomem array), mas o protocolo de iterador não existia — nem em Array, nem em Map/Set.

Era a outra metade do padrão dos bundles ([ generator(), [].values(), … ], #2038) e o que impedia 368_iterator_protocol (#2024).

A correção

1. O handle vira um iterador aberto na criação (open_vec_iterator), o que o torna distinguível de um array comum em runtime — sem side-table nova: GEN_CURSORS já existia para o generator eager, e generator_next já cursoriza Entry::Vec. Map/Set (stdlib .ts) devolvem seus arrays através do values() de Array, herdando a marcação.

2. .next()/.return()/.throw() sobre receiver-array roteia ao despacho dinâmico, que aceita Entry::Vec somente se marcado.

A armadilha que derrubou a tentativa anterior

generator_next usa or_insert(0) — ele cria o cursor para qualquer handle que receba. Perguntar "tem cursor?" depois responde sim para um array comum também, e foi assim que a marcação por side-table falhou antes (registrado na #2042).

Por isso o predicado é contains_key puro, nunca inserindo: continua sendo uma propriedade de como o handle foi criado. [1,2].next segue undefined.

O array continua materializado, então for-of, spread, .join() e .length sobre o resultado seguem idênticos.

Validação

  • claude-iterador-nativo-next.test.ts19/19: Array/Map/Set, independência de dois iteradores sobre o mesmo array, take() (a forma dos bundles), mais as não-regressões ([1,2].nextundefined, spread, for-of, destructuring de entries(), .join(), .length).
  • Fixture cross-runtime claude-native-iterator-next.tsbyte-idêntica a Node e Bun.
  • Suite: 2735/2736. A única falha — "window é o MESMO objeto entre scripts do documento" — é pré-existente, verificada na main.
  • read_before_commit.sh: sem violação.

Limitação conhecida (explícita)

Consumir parcialmente com .next() e depois espalhar/iterar reinicia do zero:

const p = [10,20,30].values();
p.next();     // 10
[...p]        // RTS: 10,20,30   ·   Node: 20,30

O front prova "é array" e emite index-walk a partir de 0, sem consultar o cursor. Nenhum programa regride — essa composição não compilava antes —, mas é uma divergência real. Corrigi-la exige for-of/spread consultarem o cursor, hoje decidido estaticamente. Fica na #2042.

O que ainda falta

arr[Symbol.iterator]() (a chamada). A leitura já devolve uma função, mas a chamada roteia por __rtsadp_idx_call, que faz ToString da symbol key (→ "[object Object]") em vez de ter a branch de symbol que __rtsadp_dyn_idx_get já tem.

Tentei e reverti: o retorno da função nativa é re-interpretado como número na camada de invocação — o mesmo i64 ⇒ número do #2042/#2044, agora em fn_invoke_method. Ainda trava a zip da 368_iterator_protocol.

Refs #2042, #2024, #2038

🤖 Generated with Claude Code

…, Map e Set

`[1,2].values().next()` falhava em COMPILAÇÃO — "no Registry entry for
`Array.next(0 args)`" — porque `values()`/`keys()`/`entries()` devolvem um array
materializado e `Array` não tem linha de Registry para `next`. `for-of` e spread
funcionavam (consomem array), mas o protocolo de iterador não existia.

Era a outra metade do padrão dos bundles (`[ generator(), [].values(), … ]`, #2038)
e o que impedia `368_iterator_protocol` (#2024) de rodar.

Duas peças:

1. O handle devolvido é REGISTRADO como iterador aberto na criação
   (`open_vec_iterator`), o que o torna distinguível de um array comum em runtime
   sem side-table nova — `GEN_CURSORS` já existia para o generator eager, e
   `generator_next` já cursoriza `Entry::Vec`. Map/Set (stdlib `.ts`) devolvem seus
   arrays através do `values()` de Array, herdando a marcação.

2. `.next()`/`.return()`/`.throw()` sobre receiver-array roteia ao despacho
   dinâmico, que aceita `Entry::Vec` SOMENTE se marcado.

A distinção tem uma armadilha que derrubou uma tentativa anterior (registrada na
#2042): `generator_next` usa `or_insert(0)`, ou seja CRIA o cursor para qualquer
handle que receba — perguntar "tem cursor?" depois responde sim para um array
comum também. Por isso o predicado é `contains_key` puro, nunca inserindo: assim
continua sendo uma propriedade de COMO o handle foi criado, e `[1,2].next` segue
`undefined`.

O array continua materializado, então `for-of`, spread, `.join()` e `.length`
sobre o resultado seguem idênticos.

Testes: `claude-iterador-nativo-next.test.ts` (19) cobre Array/Map/Set,
independência de dois iteradores sobre o mesmo array, `take()` (a forma dos
bundles) e as não-regressões (`[1,2].next`→undefined, spread, for-of,
destructuring de entries, `.join()`, `.length`). Fixture cross-runtime
`claude-native-iterator-next.ts` — byte-idêntica a Node E Bun.

Suite: 2735/2736. A única falha — "window é o MESMO objeto entre scripts do
documento" — é PRÉ-EXISTENTE, verificada na main.

LIMITAÇÃO CONHECIDA, explícita: consumir parcialmente com `.next()` e DEPOIS
espalhar/iterar reinicia do zero —

    const p = [10,20,30].values();
    p.next();        // 10
    [...p]           // RTS: 10,20,30   ·  Node: 20,30

porque o front prova "é array" e emite index-walk a partir de 0, sem consultar o
cursor. Nenhum programa regride (essa composição não compilava antes), mas é uma
divergência real; corrigi-la exige o for-of/spread consultarem o cursor, o que
hoje é decidido estaticamente. Fica registrado na #2042.

Também permanece: `arr[Symbol.iterator]()` (a CHAMADA) — a leitura já devolve uma
função, mas a chamada roteia por `__rtsadp_idx_call`, que faz `ToString` da symbol
key (→ "[object Object]") em vez de ter a branch de symbol que
`__rtsadp_dyn_idx_get` já tem. Tentei e reverti: o retorno da função nativa é
re-interpretado como número na camada de invocação (o mesmo "i64 ⇒ número" do
#2042/#2044, agora em `fn_invoke_method`). Isso ainda trava a `zip` da
`368_iterator_protocol`.

Refs #2042, #2024, #2038

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017k43FcCXn8a1zqWfDmJAWr
@MarcosBrendonDePaula
MarcosBrendonDePaula merged commit 87a4e7c into main Jul 31, 2026
10 checks passed
@MarcosBrendonDePaula
MarcosBrendonDePaula deleted the feat/native-iterator-next-protocol branch July 31, 2026 12:53
@github-actions

Copy link
Copy Markdown
Contributor

Cross-runtime parity (RTS vs Bun vs Node)

Metric Value
Total 682
✅ Pass 475
❌ RTS diverges 114
⚠️ Bun ≠ Node 18
💥 RTS error 75
🚫 Rejected 0

Divergences detected

303_array_fromasync — rts_error

Bun output:

gen=3,6
prom=a,b

Node output:

gen=3,6
prom=a,b

RTS output:


418_array_species_subclass — rts_error

Bun output:

true:false:2,4,6
true:true:2,3

Node output:

true:false:2,4,6
true:true:2,3

RTS output:


claude-entries-for-of-pair-destructuring — rts_diverge

Bun output:

entries=0:a,1:b,2:c
idxOnly=0,1,2
valOnly=a,b,c
pairShape=true2,true2,true2
withDefault=0aDEF,1bDEF,2cDEF
restPair=0->a,1->b,2->c
keys=0,1,2
values=a,b,c
valuesMatchDefault=true
letRebind=0A,10B,20C
break=a|len=1
continue=a,c
sparse=0:x,1:undefined,2:z
empty=0
live=0p,1q
nested=0m01,0m12,1n01,1n12
manualPair=0a

Node output:

entries=0:a,1:b,2:c
idxOnly=0,1,2
valOnly=a,b,c
pairShape=true2,true2,true2
withDefault=0aDEF,1bDEF,2cDEF
restPair=0->a,1->b,2->c
keys=0,1,2
values=a,b,c
valuesMatchDefault=true
letRebind=0A,10B,20C
break=a|len=1
continue=a,c
sparse=0:x,1:undefined,2:z
empty=0
live=0p,1q
nested=0m01,0m12,1n01,1n12
manualPair=0a

RTS output:

entries=0:a,1:b,2:c
idxOnly=0,1,2
valOnly=a,b,c
pairShape=true2,true2,true2
withDefault=0aDEF,1bDEF,2cDEF
restPair=0->a,1->b,2->c
keys=0,1,2
values=a,b,c
valuesMatchDefault=true
letRebind=0A,10B,20C
break=a|len=1
continue=a,c
sparse=0:x,1:undefined,2:z
empty=0
live=0p
nested=0m01,0m12,1n01,1n12
manualPair=0a
claude-from-arraylike-no-iterator — rts_diverge

Bun output:

basic=a,b,c
gappyLen=4
gappy=x,undefined,z,undefined
gappyHasIdx1=true
overLen=undefined,undefined
zeroLen=0
noLen=0
strLen=1,2,3
negLen=0
fracLen=a,b
nanLen=0
undefLen=0
mapFn=10,21,32
strKeys=s0,s1
protoIdx=own,fromProto
getter=plain,got|hits=1
iteratorWins=I1,I2

Node output:

basic=a,b,c
gappyLen=4
gappy=x,undefined,z,undefined
gappyHasIdx1=true
overLen=undefined,undefined
zeroLen=0
noLen=0
strLen=1,2,3
negLen=0
fracLen=a,b
nanLen=0
undefLen=0
mapFn=10,21,32
strKeys=s0,s1
protoIdx=own,fromProto
getter=plain,got|hits=1
iteratorWins=I1,I2

RTS output:

basic=a,b,c
gappyLen=4
gappy=x,undefined,z,undefined
gappyHasIdx1=true
overLen=undefined,undefined
zeroLen=0
noLen=undefined
strLen=1,2,3
negLen=undefined
fracLen=a,b
nanLen=undefined
undefLen=undefined
mapFn=10,21,32
strKeys=s0,s1
protoIdx=own,fromProto
getter=plain,got|hits=1
iteratorWins=L0,L1,L2
codex_array_concat_spreadable_edges — rts_error

Bun output:

6
1,2,a,b,3|4,z
true

Node output:

6
1,2,a,b,3|4,z
true

RTS output:


codex_array_from_iterator_close_on_throw — rts_diverge

Bun output:

stop
next0,next1,next2,return

Node output:

stop
next0,next1,next2,return

RTS output:


codex_array_iterator_reused_result_object — rts_diverge

Bun output:

0,1,2

Node output:

0,1,2

RTS output:


codex_array_length_define_traps — rts_diverge

Bun output:

after-define=7:1|2|3|4|||7:0,1,2,3,6
after-trunc=2:1|2:0,1
RangeError
final=2:1|2

Node output:

after-define=7:1|2|3|4|||7:0,1,2,3,6
after-trunc=2:1|2:0,1
RangeError
final=2:1|2

RTS output:

after-define=4:1|2|3|4:0,1,2,3
after-trunc=4:1|2|3|4:0,1,2,3
final=4:1|2|3|4
codex_array_methods_thisarg_mutation — rts_error

Bun output:

3,6,9,120
1,2,3,40,99
1,2,3

Node output:

3,6,9,120
1,2,3,40,99
1,2,3

RTS output:


codex_array_species_constructor_poison — rts_error

Bun output:

true
10,20,30
3

Node output:

true
10,20,30
3

RTS output:


102_bigint_ops — rts_diverge

Bun output:

add=15
mul=-21
div=5
mod=2
pow=256
cmp=true
asInt=-1
asUint=255

Node output:

add=15
mul=-21
div=5
mod=2
pow=256
cmp=true
asInt=-1
asUint=255

RTS output:

add=15
mul=-21
div=5.666666666666667
mod=2
pow=256
cmp=true
asInt=-1
asUint=255
291_json_bigint — rts_diverge

Bun output:

err=TypeError

Node output:

err=TypeError

RTS output:

err=
317_bigint_literals — rts_diverge

Bun output:

vals=10,255
eq=true
seq=false

Node output:

vals=10,255
eq=true
seq=false

RTS output:

vals=10,255
eq=true
seq=true
65_bigint_typed_arrays — rts_error

Bun output:

arr=1,-2,9007199254740991
dv=-123

Node output:

arr=1,-2,9007199254740991
dv=-123

RTS output:


codex_bigint_asuintn_edges — rts_diverge

Bun output:

255
-1
0
7
ffffffffffffffff

Node output:

255
-1
0
7
ffffffffffffffff

RTS output:

255
-1
123
7
7fffffffffffffff
codex_bigint_typedarray_clamp_wrap — rts_error

Bun output:

-1,-9223372036854775808,9223372036854775807
18446744073709551615,0,5

Node output:

-1,-9223372036854775808,9223372036854775807
18446744073709551615,0,5

RTS output:


codex_primitive_wrappers_truthiness — rts_diverge

Bun output:

truthy:object:boolean:false
truthy:object:number:0
truthy:object:string:
extra:false

Node output:

truthy:object:boolean:false
truthy:object:number:0
truthy:object:string:
extra:false

RTS output:

truthy:object:boolean:false
truthy:object:number:0
truthy:object:string:
:{}
106_error_stack_presence — rts_diverge

Bun output:

name=Error
msg=zap
stack=string
hasBoom=true

Node output:

name=Error
msg=zap
stack=string
hasBoom=true

RTS output:

name=Error
msg=zap
stack=string
hasBoom=false
267_private_fields — rts_error

Bun output:

inner=7:20
outer=SyntaxError

Node output:

inner=7:20
outer=SyntaxError

RTS output:


268_private_methods — rts_error

Bun output:

both=6:15
err=SyntaxError

Node output:

both=6:15
err=SyntaxError

RTS output:


270_new_target — rts_error

Bun output:

f1=call
f2=[object Object]
wrap=undef
cls=undefined:undefined

Node output:

f1=call
f2=[object Object]
wrap=undef
cls=undefined:undefined

RTS output:


271_computed_class_members — rts_error

Bun output:

sum=5
iter=1,2
sym=ok

Node output:

sum=5
iter=1,2
sym=ok

RTS output:

sum=5
iter=
376_private_pattern_advanced — rts_error

Bun output:

1,2,3
0
4
5
Vec2(4,6)
Vec2(6,8)
11
idle
true
running
false
true
true
false
stopped

Node output:

1,2,3
0
4
5
Vec2(4,6)
Vec2(6,8)
11
idle
true
running
false
true
true
false
stopped

RTS output:


claude-class-expression-const — rts_error

Bun output:

sum=5
str=(2,3)
instance=true
name=Point
length=2
named_self=Inner:1
named_outer=Inner
named_static=Inner:4
named_instance=true
expr_extends=derived>base
expr_chain=true/true
factory_a=a-1
factory_b=b-2
factory_distinct=false
factory_cross=false
from_array=x-0,y-1
iife=inline

Node output:

sum=5
str=(2,3)
instance=true
name=Point
length=2
named_self=Inner:1
named_outer=Inner
named_static=Inner:4
named_instance=true
expr_extends=derived>base
expr_chain=true/true
factory_a=a-1
factory_b=b-2
factory_distinct=false
factory_cross=false
from_array=x-0,y-1
iife=inline

RTS output:


claude-closure-this-arrow-vs-function — rts_error

Bun output:

arrow=10
function=undefined_this
self=10
bound=10
mapped=11,12
deep_arrow=10
static_arrow=ctor
after_mutation arrow=20 local=10
bump=21,22 field=22
instance_bound b=22 b2=100
field_arrow_detached=5
field_arrow_live=6
inherit_arrow=Derived

Node output:

arrow=10
function=undefined_this
self=10
bound=10
mapped=11,12
deep_arrow=10
static_arrow=ctor
after_mutation arrow=20 local=10
bump=21,22 field=22
instance_bound b=22 b2=100
field_arrow_detached=5
field_arrow_live=6
inherit_arrow=Derived

RTS output:


claude-detached-method-this — rts_diverge

Bun output:

attached=7
attached_safe=has-this:7
detached_throws=true
detached_safe=no-this
call=7
apply=7
bind=7
bind_twice=7
borrow_obj=42
borrow_other=5
arrow_detached=arrow:7
arrow_call_other=arrow:7
cb_method_throws=true
cb_arrow=arrow:7
cb_bound=7
cb_wrapped=7
elem_detached_throws=true
elem_bound=22
destructured_throws=true

Node output:

attached=7
attached_safe=has-this:7
detached_throws=true
detached_safe=no-this
call=7
apply=7
bind=7
bind_twice=7
borrow_obj=42
borrow_other=5
arrow_detached=arrow:7
arrow_call_other=arrow:7
cb_method_throws=true
cb_arrow=arrow:7
cb_bound=7
cb_wrapped=7
elem_detached_throws=true
elem_bound=22
destructured_throws=true

RTS output:

attached=7
attached_safe=has-this:7
detached=no-throw
detached_safe=no-this
call=7
apply=7
bind=7
bind_twice=7
borrow_obj=42
borrow_other=5
arrow_detached=arrow:7
arrow_call_other=arrow:7
cb_method=0
cb_arrow=arrow:7
cb_bound=7
cb_wrapped=7
elem_detached=no-throw
elem_bound=22
destructured=no-throw
claude-instanceof-inheritance-chain — rts_diverge

Bun output:

a_A=true
a_B=false
a_C=false
b_A=true
b_B=true
b_C=false
c_A=true
c_B=true
c_C=true
o_A=false
o_Other=true
c_Object=true
c_Function=false
ctor_Function=true
num_A=false
str_Object=false
null_Object=false
c_ctor_name=C
b_ctor_name=B
c_ctor_is_C=true
proto_B_of_C=true
isProto_A_c=true
isProto_C_b=false
static_inherit=true
sweep=A,B,C,?
count_A=3
e_SubErr=true
e_MyErr=true
e_Error=true
e_msg=boom

Node output:

a_A=true
a_B=false
a_C=false
b_A=true
b_B=true
b_C=false
c_A=true
c_B=true
c_C=true
o_A=false
o_Other=true
c_Object=true
c_Function=false
ctor_Function=true
num_A=false
str_Object=false
null_Object=false
c_ctor_name=C
b_ctor_name=B
c_ctor_is_C=true
proto_B_of_C=true
isProto_A_c=true
isProto_C_b=false
static_inherit=true
sweep=A,B,C,?
count_A=3
e_SubErr=true
e_MyErr=true
e_Error=true
e_msg=boom

RTS output:

a_A=true
a_B=false
a_C=false
b_A=true
b_B=true
b_C=false
c_A=true
c_B=true
c_C=true
o_A=false
o_Other=true
c_Object=true
c_Function=false
ctor_Function=true
num_A=false
str_Object=false
null_Object=false
c_ctor_name=C
b_ctor_name=B
c_ctor_is_C=false
proto_B_of_C=true
isProto_A_c=true
isProto_C_b=false
static_inherit=false
sweep=A,B,C,?
count_A=3
e_SubErr=true
e_MyErr=true
e_Error=true
e_msg=boom
claude-static-inheritance-and-super — rts_error

Bun output:

shape_kind=shape
circle_kind=circle
small_kind=small-circle
shape_describe=kind=shape
circle_describe=circle<kind=circle>
small_describe=small<circle<kind=small-circle>>
circle_make=circle:3
small_make=small-circle:4
shape_count0=0
circle_count0=0
circle_bump=1
circle_count1=1
shape_count1=0
circle_own=true
shape_bump=1
shape_count2=1
circle_count2=1
borrowed_describe=kind=circle

Node output:

shape_kind=shape
circle_kind=circle
small_kind=small-circle
shape_describe=kind=shape
circle_describe=circle<kind=circle>
small_describe=small<circle<kind=small-circle>>
circle_make=circle:3
small_make=small-circle:4
shape_count0=0
circle_count0=0
circle_bump=1
circle_count1=1
shape_count1=0
circle_own=true
shape_bump=1
shape_count2=1
circle_count2=1
borrowed_describe=kind=circle

RTS output:


claude-super-chain-three-levels — rts_diverge

Bun output:

ctor_trace=L3-ctor-before|L2-ctor-before|L1-ctor:x-3-2|L2-ctor-after:x-3-2|L3-ctor-after:x-3-2
describe=L3{L2[L1(x-3-2)]}
describe_trace=L3-describe|L2-describe|L1-describe
tag=l1>l2>l3
name=x-3-2
mid_describe=L2[L1(y-2)]
mid_trace=L2-describe|L1-describe
mid_tag=l1>l2
borrowed=L2[L1(x-3-2)]
borrowed_trace=L2-describe|L1-describe
direct_l1=L1(x-3-2)

Node output:

ctor_trace=L3-ctor-before|L2-ctor-before|L1-ctor:x-3-2|L2-ctor-after:x-3-2|L3-ctor-after:x-3-2
describe=L3{L2[L1(x-3-2)]}
describe_trace=L3-describe|L2-describe|L1-describe
tag=l1>l2>l3
name=x-3-2
mid_describe=L2[L1(y-2)]
mid_trace=L2-describe|L1-describe
mid_tag=l1>l2
borrowed=L2[L1(x-3-2)]
borrowed_trace=L2-describe|L1-describe
direct_l1=L1(x-3-2)

RTS output:

ctor_trace=L3-ctor-before|L2-ctor-before|L1-ctor:x-3-2|L2-ctor-after:x-3-2|L3-ctor-after:x-3-2
describe=L3{L2[L1(x-3-2)]}
describe_trace=L3-ctor-before|L2-ctor-before|L1-ctor:x-3-2|L2-ctor-after:x-3-2|L3-ctor-after:x-3-2|L3-describe|L2-describe|L1-describe
tag=l1>l2>l3
name=x-3-2
mid_describe=L2[L1(y-2)]
mid_trace=L3-ctor-before|L2-ctor-before|L1-ctor:x-3-2|L2-ctor-after:x-3-2|L3-ctor-after:x-3-2|L3-describe|L2-describe|L1-describe|L2-ctor-before|L1-ctor:y-2|L2-ctor-after:y-2|L2-describe|L1-describe
mid_tag=l1>l2
borrowed=L2[L1(x-3-2)]
borrowed_trace=L3-ctor-before|L2-ctor-before|L1-ctor:x-3-2|L2-ctor-after:x-3-2|L3-ctor-after:x-3-2|L3-describe|L2-describe|L1-describe|L2-ctor-before|L1-ctor:y-2|L2-ctor-after:y-2|L2-describe|L1-describe|L2-describe|L1-describe
direct_l1=L3{L2[L1(x-3-2)]}
codex_class_computed_private_static_order — rts_error

Bun output:

5
4:6
key:a|key:m|key:b|static-a|private-static|static-b

Node output:

5
4:6
key:a|key:m|key:b|static-a|private-static|static-b

RTS output:


codex_class_static_block_throw_order — rts_error

Bun output:

boom
a,block

Node output:

boom
a,block

RTS output:


codex_class_super_field_order — rts_diverge

Bun output:

derived:derived-y
before-super|base-field|base-ctor:base|derived-field|derived-y:derived|after-super:derived:derived-y

Node output:

derived:derived-y
before-super|base-field|base-ctor:base|derived-field|derived-y:derived|after-super:derived:derived-y

RTS output:

base:derived-y
derived-field|derived-y:derived|before-super|base-field|base-ctor:base|after-super:base:derived-y
codex_instanceof_custom_hasinstance — rts_diverge

Bun output:

true
false
false

Node output:

true
false
false

RTS output:

false
false
false
codex_reflect_construct_newtarget_subclass — rts_diverge

Bun output:

7
false
true
true

Node output:

7
false
true
true

RTS output:

7
true
false
false
claude-map-constructor-from-iterables — rts_diverge

Bun output:

pairs=a:1|b:2
dup_size=2
dup_keys=a,b
dup_get_a=3
copy=x:10|y:20
copy_is_distinct=false
src_unaffected=2:3
copy_x_stable=10
from_entries=p,q
empty_arr=0
no_arg=0
null_arg=0
undef_arg=0
extra_ignored=v:1
missing_val=true:undefined
from_set=s,t
from_gen=g1:1|g2:2
from_obj_entries=o1:1|o2:2
mixed_size=5
mixed_1=num:str
mixed_bool=bool
mixed_obj=obj
mixed_null=null
set_arr=3,1,2
set_str=h,e,l,o
set_from_set=1,2
set_from_map_keys=a,b
set_empty=0:0:0
set_from_gen=1,2

Node output:

pairs=a:1|b:2
dup_size=2
dup_keys=a,b
dup_get_a=3
copy=x:10|y:20
copy_is_distinct=false
src_unaffected=2:3
copy_x_stable=10
from_entries=p,q
empty_arr=0
no_arg=0
null_arg=0
undef_arg=0
extra_ignored=v:1
missing_val=true:undefined
from_set=s,t
from_gen=g1:1|g2:2
from_obj_entries=o1:1|o2:2
mixed_size=5
mixed_1=num:str
mixed_bool=bool
mixed_obj=obj
mixed_null=null
set_arr=3,1,2
set_str=h,e,l,o
set_from_set=1,2
set_from_map_keys=a,b
set_empty=0:0:0
set_from_gen=1,2

RTS output:

pairs=a:1|b:2
dup_size=2
dup_keys=a,b
dup_get_a=3
copy=undefined:undefined|x:y|10:20|-1:-1
copy_is_distinct=false
src_unaffected=2:5
copy_x_stable=y
from_entries=p,q
empty_arr=0
no_arg=0
null_arg=0
undef_arg=0
extra_ignored=v:1
missing_val=true:undefined
from_set=,s,1,1,-1
from_gen=g1:1|g2:2
from_obj_entries=o1:1|o2:2
mixed_size=5
mixed_1=num:str
mixed_bool=bool
mixed_obj=obj
mixed_null=null
set_arr=3,1,2
set_str=
set_from_set=
set_from_map_keys=a,b
set_empty=0:0:0
set_from_gen=1,2
claude-map-foreach-callback-contract — rts_diverge

Bun output:

triple=a=1:same_map=true:args=3|b=2:same_map=true:args=3
arg_order=first=v,second=k
returns=undefined
thisArg=CTX:x1|CTX:y2
arrow_ignores_thisArg=OUTER
empty_calls=0
count=3:seq=a,b,c
added_during=a,b
deleted_during=a,c
live_values=a=1,b=99
readd_during=a,b,a
throws=stop
set_triple=p:true:same_set=true:args=3|q:true:same_set=true:args=3
set_thisArg=6
set_returns=undefined

Node output:

triple=a=1:same_map=true:args=3|b=2:same_map=true:args=3
arg_order=first=v,second=k
returns=undefined
thisArg=CTX:x1|CTX:y2
arrow_ignores_thisArg=OUTER
empty_calls=0
count=3:seq=a,b,c
added_during=a,b
deleted_during=a,c
live_values=a=1,b=99
readd_during=a,b,a
throws=stop
set_triple=p:true:same_set=true:args=3|q:true:same_set=true:args=3
set_thisArg=6
set_returns=undefined

RTS output:

triple=a=1:same_map=true:args=4|b=2:same_map=true:args=4
arg_order=first=v,second=k
returns=undefined
thisArg=
arrow_ignores_thisArg=OUTER
empty_calls=0
count=3:seq=a,b,c
added_during=a,b
deleted_during=a,c
live_values=a=1,b=99
readd_during=a,a
throws=stop
set_triple=p:true:same_set=true:args=4|q:true:same_set=true:args=4
set_thisArg=0
set_returns=undefined
claude-map-groupby-key-coercion — rts_diverge

Bun output:

obj_keys=odd,even
obj_even=2,4
obj_odd=1,3,5
obj_num_keys=0,1
obj_key_types=string,string
obj_get_0=2,4:2,4
obj_proto_null=true
obj_no_tostring=undefined
map_keys=1,0
map_key_types=number,number
map_get_num=2,4
map_get_str_miss=undefined
map_obj_size=2
map_obj_A=4,5
map_obj_B=1,2,3
map_obj_key_names=B,A
map_obj_fresh_key_miss=undefined
svz_size=2
svz_zero=1,2
svz_key_1_div=Infinity
svz_nan=3
obj_coerced_keys=0|NaN|undefined|null
cb_args=a@0,b@1
obj_cb_args=a@0,b@1
order=3,1,2
groups=3+3|1+1|2
bool_keys=false,true:types=boolean,boolean
bool_true=3,4,5
empty_map=0
empty_obj=0
from_set=1,0:odd=1,3
values_are_arrays=true

Node output:

obj_keys=odd,even
obj_even=2,4
obj_odd=1,3,5
obj_num_keys=0,1
obj_key_types=string,string
obj_get_0=2,4:2,4
obj_proto_null=true
obj_no_tostring=undefined
map_keys=1,0
map_key_types=number,number
map_get_num=2,4
map_get_str_miss=undefined
map_obj_size=2
map_obj_A=4,5
map_obj_B=1,2,3
map_obj_key_names=B,A
map_obj_fresh_key_miss=undefined
svz_size=2
svz_zero=1,2
svz_key_1_div=Infinity
svz_nan=3
obj_coerced_keys=0|NaN|undefined|null
cb_args=a@0,b@1
obj_cb_args=a@0,b@1
order=3,1,2
groups=3+3|1+1|2
bool_keys=false,true:types=boolean,boolean
bool_true=3,4,5
empty_map=0
empty_obj=0
from_set=1,0:odd=1,3
values_are_arrays=true

RTS output:

obj_keys=odd,even
obj_even=2,4
obj_odd=1,3,5
obj_num_keys=0,1
obj_key_types=string,string
obj_get_0=2,4:2,4
obj_proto_null=false
obj_no_tostring=undefined
map_keys=1,0
map_key_types=number,number
map_get_num=2,4
map_get_str_miss=undefined
map_obj_size=2
map_obj_A=4,5
map_obj_B=1,2,3
map_obj_key_names=B,A
map_obj_fresh_key_miss=undefined
svz_size=2
svz_zero=1,2
svz_key_1_div=-Infinity
svz_nan=3
obj_coerced_keys=0|NaN|undefined|null
cb_args=a@0,b@1
obj_cb_args=a@0,b@1
order=3,1,2
groups=3+3|1+1|2
bool_keys=false,true:types=boolean,boolean
bool_true=3,4,5
empty_map=0
empty_obj=0
from_set=1,NaN:odd=1073741835,7
values_are_arrays=true
claude-map-key-samevaluezero-normalization — rts_diverge

Bun output:

key_is_zero=true
key_is_negzero=false
key_1_div=Infinity
m2_size=1
m2_get_negzero=second
m2_get_zero=second
m3_size=1
m3_key_1_div=Infinity
m3_get=second
m4_computed_1_div=Infinity
m4_has_zero=true
s1_1_div=Infinity
s1_has_zero=true
s1_size_after_add_zero=1
s2_size=1
s2_1_div=Infinity
m5_size=1
m5_get_nan=e
m5_key_is_nan=true
nan_eq_self=false
m5_has_nan=true
m5_has_computed_nan=true
s3_size=1
s3_has=true
s3_delete=true:0
m6_foreach=Infinity=z|NaN=n
m6_delete_negzero=true:1
m6_delete_nan=true:0

Node output:

key_is_zero=true
key_is_negzero=false
key_1_div=Infinity
m2_size=1
m2_get_negzero=second
m2_get_zero=second
m3_size=1
m3_key_1_div=Infinity
m3_get=second
m4_computed_1_div=Infinity
m4_has_zero=true
s1_1_div=Infinity
s1_has_zero=true
s1_size_after_add_zero=1
s2_size=1
s2_1_div=Infinity
m5_size=1
m5_get_nan=e
m5_key_is_nan=true
nan_eq_self=false
m5_has_nan=true
m5_has_computed_nan=true
s3_size=1
s3_has=true
s3_delete=true:0
m6_foreach=Infinity=z|NaN=n
m6_delete_negzero=true:1
m6_delete_nan=true:0

RTS output:

key_is_zero=false
key_is_negzero=true
key_1_div=-Infinity
m2_size=1
m2_get_negzero=second
m2_get_zero=second
m3_size=1
m3_key_1_div=Infinity
m3_get=second
m4_computed_1_div=-Infinity
m4_has_zero=true
s1_1_div=-Infinity
s1_has_zero=true
s1_size_after_add_zero=1
s2_size=1
s2_1_div=Infinity
m5_size=1
m5_get_nan=e
m5_key_is_nan=true
nan_eq_self=false
m5_has_nan=true
m5_has_computed_nan=true
s3_size=1
s3_has=true
s3_delete=true:0
m6_foreach=-Infinity=z|NaN=n
m6_delete_negzero=true:1
m6_delete_nan=true:0
claude-map-set-iterators-independent — rts_error

Bun output:

it1_first=a
it2_first=a
it1_second=b
it2_still_second=b
distinct_objects=false
k_v_distinct=false
k_first=a
v_first=1
e_first=a:1
r1=x:false
r2=undefined:true
r3_still_done=undefined:true
it4_done=true
it4_after_growth=undefined:true
it5_a=a
it5_sees_b=b
it5_done=true
it6_a=a
it6_skips_b=c
iterator_self=true
spread_iterator=a,b,c
rest_spread=b,c
map_iter_is_entries=true
default_iter_pair=a:1
fresh1=a,b,c
fresh2=a,b,c
pairs_not_shared=false
pairs_equal=true
set_keys_is_values=true
set_iter_is_values=true
set_entry=10:10:true
set_indep=10:10:20

Node output:

it1_first=a
it2_first=a
it1_second=b
it2_still_second=b
distinct_objects=false
k_v_distinct=false
k_first=a
v_first=1
e_first=a:1
r1=x:false
r2=undefined:true
r3_still_done=undefined:true
it4_done=true
it4_after_growth=undefined:true
it5_a=a
it5_sees_b=b
it5_done=true
it6_a=a
it6_skips_b=c
iterator_self=true
spread_iterator=a,b,c
rest_spread=b,c
map_iter_is_entries=true
default_iter_pair=a:1
fresh1=a,b,c
fresh2=a,b,c
pairs_not_shared=false
pairs_equal=true
set_keys_is_values=true
set_iter_is_values=true
set_entry=10:10:true
set_indep=10:10:20

RTS output:

it1_first=a
it2_first=a
it1_second=b
it2_still_second=b
distinct_objects=false
k_v_distinct=false
k_first=a
v_first=1
e_first=a:1
r1=x:false
r2=undefined:true
r3_still_done=undefined:true
it4_done=true
it4_after_growth=undefined:true
it5_a=a
it5_sees_b=undefined
it5_done=true
it6_a=a
it6_skips_b=b
claude-set-add-map-set-chaining — rts_diverge

Bun output:

add_returns_self=true
add_returns_set=true
chain=1,2,3
chain_size=3
chain_dup=1,2:size=2
inline=a,b
chain_size_inline=2
set_returns_self=true
set_returns_map=true
map_chain=a:1|b:2|c:3
chain_overwrite=a,b:a=99
chain_get=5
set_delete_hit=true
set_delete_miss=false
map_delete_hit=true
map_delete_miss=false
set_clear=undefined:size=0
map_clear=undefined:size=0
set_has=true:false
map_has=true:false
mixed_chain_size=6
mixed_has=truetruetruetruetruetrue
feed_keys=x,y
nested=1,2,3

Node output:

add_returns_self=true
add_returns_set=true
chain=1,2,3
chain_size=3
chain_dup=1,2:size=2
inline=a,b
chain_size_inline=2
set_returns_self=true
set_returns_map=true
map_chain=a:1|b:2|c:3
chain_overwrite=a,b:a=99
chain_get=5
set_delete_hit=true
set_delete_miss=false
map_delete_hit=true
map_delete_miss=false
set_clear=undefined:size=0
map_clear=undefined:size=0
set_has=true:false
map_has=true:false
mixed_chain_size=6
mixed_has=truetruetruetruetruetrue
feed_keys=x,y
nested=1,2,3

RTS output:

add_returns_self=true
add_returns_set=true
chain=1,2,3
chain_size=3
chain_dup=1,2:size=2
inline=a,b
chain_size_inline=2
set_returns_self=true
set_returns_map=true
map_chain=a:1|b:2|c:3
chain_overwrite=a,b:a=99
chain_get=5
set_delete_hit=true
set_delete_miss=false
map_delete_hit=true
map_delete_miss=false
set_clear=undefined:size=0
map_clear=undefined:size=0
set_has=true:false
map_has=true:false
mixed_chain_size=6
mixed_has=truetruetruetruetruetrue
feed_keys=x,y
nested=1073741835,1,2,-1,0,1,-1,-1,-1,-1,-1,-1,-1,7,3
claude-set-operations-argument-handling — rts_diverge

Bun output:

union=1,2,3,4,5,6
union_reverse=3,4,5,6,1,2
union_is_new=false:false
union_is_set=true
union_sources_intact=4:4
inter=3,4
inter_reverse=3,4
inter_empty=:size=0
diff=1,2
diff_reverse=5,6
diff_all=0
symdiff=1,2,5,6
symdiff_reverse=5,6,1,2
symdiff_self=0
subset_true=true
subset_false=false
subset_self=true
subset_empty=true
superset_true=true
superset_false=false
superset_empty=true
disjoint_true=true
disjoint_false=false
disjoint_empty=true
empty_union=3,4,5,6
empty_inter=0
empty_diff=0
empty_symdiff=3,4,5,6
union_with_map=1,2,3,4,9
inter_with_map=3,4
diff_with_map=1,2
subset_with_map=true
disjoint_with_map=true
union_setlike=1,2,3,4
inter_setlike=2,3
subset_setlike=true
array_arg_throws=true
nan_inter=1
zero_inter_1div=Infinity
nan_diff=1
chained=2,3,4,5
chained2=3,4,0
derived_stable=1,2,3:base=1,2,99

Node output:

union=1,2,3,4,5,6
union_reverse=3,4,5,6,1,2
union_is_new=false:false
union_is_set=true
union_sources_intact=4:4
inter=3,4
inter_reverse=3,4
inter_empty=:size=0
diff=1,2
diff_reverse=5,6
diff_all=0
symdiff=1,2,5,6
symdiff_reverse=5,6,1,2
symdiff_self=0
subset_true=true
subset_false=false
subset_self=true
subset_empty=true
superset_true=true
superset_false=false
superset_empty=true
disjoint_true=true
disjoint_false=false
disjoint_empty=true
empty_union=3,4,5,6
empty_inter=0
empty_diff=0
empty_symdiff=3,4,5,6
union_with_map=1,2,3,4,9
inter_with_map=3,4
diff_with_map=1,2
subset_with_map=true
disjoint_with_map=true
union_setlike=1,2,3,4
inter_setlike=2,3
subset_setlike=true
array_arg_throws=true
nan_inter=1
zero_inter_1div=Infinity
nan_diff=1
chained=2,3,4,5
chained2=3,4,0
derived_stable=1,2,3:base=1,2,99

RTS output:

union=1,2,3,4,5,6
union_reverse=3,4,5,6,1,2
union_is_new=false:false
union_is_set=true
union_sources_intact=4:4
inter=3,4
inter_reverse=3,4
inter_empty=:size=0
diff=1,2
diff_reverse=5,6
diff_all=0
symdiff=1,2,5,6
symdiff_reverse=5,6,1,2
symdiff_self=0
subset_true=true
subset_false=false
subset_self=true
subset_empty=true
superset_true=true
superset_false=false
superset_empty=true
disjoint_true=true
disjoint_false=false
disjoint_empty=true
empty_union=3,4,5,6
empty_inter=0
empty_diff=0
empty_symdiff=3,4,5,6
union_with_map=1,2,3,4,x,y,z
inter_with_map=3,4
diff_with_map=1,2
subset_with_map=true
disjoint_with_map=true
union_setlike=1,2,3,4
inter_setlike=2,3
subset_setlike=true
array_arg=no_throw
nan_inter=1
zero_inter_1div=-Infinity
nan_diff=1
chained=2,3,4,5
chained2=3,4,0
derived_stable=1,2,3:base=1,2,99
codex_map_forEach_clear_readd — rts_diverge

Bun output:

a1,d4,e5
d4,e5

Node output:

a1,d4,e5
d4,e5

RTS output:

a1,e5
d4,e5
codex_map_iteration_mutation — rts_diverge

Bun output:

a1,c3,d4,e5
a,c,d,e

Node output:

a1,c3,d4,e5
a,c,d,e

RTS output:

a1,b2,c3
a,c,d,e
codex_set_iteration_mutation — rts_diverge

Bun output:

1,3,4,5
1,3,4,5

Node output:

1,3,4,5
1,3,4,5

RTS output:

1,2,3
1,3,4,5
claude-date-numeric-coercion — rts_error

Bun output:

getTime=1718003289010
valueOf=1718003289010
Number=1718003289010
unary_plus=1718003289010
agree1=true
agree2=true
agree3=true
times_one=1718003289010
minus_zero=1718003289010
div=1718003289.01
math_floor=1718003289
math_trunc=19884
epoch_num=0
epoch_plus=0
before_num=-1
old_num=-2208988800000
old_negative=true
bad_getTime_nan=true
bad_valueOf_nan=true
bad_Number_nan=true
bad_plus_nan=true
bad_arith_nan=true
frac_ms=1
frac_neg_ms=-1
is_integer=true
roundtrip=true
copy_eq=true

Node output:

getTime=1718003289010
valueOf=1718003289010
Number=1718003289010
unary_plus=1718003289010
agree1=true
agree2=true
agree3=true
times_one=1718003289010
minus_zero=1718003289010
div=1718003289.01
math_floor=1718003289
math_trunc=19884
epoch_num=0
epoch_plus=0
before_num=-1
old_num=-2208988800000
old_negative=true
bad_getTime_nan=true
bad_valueOf_nan=true
bad_Number_nan=true
bad_plus_nan=true
bad_arith_nan=true
frac_ms=1
frac_neg_ms=-1
is_integer=true
roundtrip=true
copy_eq=true

RTS output:


claude-date-parse-iso-offsets — rts_diverge

Bun output:

date_only=1705276800000
year_month=1704067200000
year_only=1704067200000
date_only_iso=2024-01-15T00:00:00.000Z
z_basic=1705314600000
z_ms=1705314600123
z_no_sec=1705314600000
z_eq_utc=true
plus0_eq_z=true
minus0_eq_z=true
plus1=2024-01-15T09:30:00.000Z
plus0530=2024-01-15T05:00:00.000Z
plus14=2024-01-14T20:30:00.000Z
minus3=2024-01-15T13:30:00.000Z
minus0930=2024-01-15T20:00:00.000Z
offset_delta=3600000
roll_next_day=2024-01-16T01:30:00.000Z
roll_prev_day=2024-01-14T22:30:00.000Z
ms_1digit=2024-01-15T10:30:00.100Z
ms_2digit=2024-01-15T10:30:00.120Z
ms_3digit=2024-01-15T10:30:00.123Z
epoch=0
pre_epoch=-1
leap_day=2020-02-29T12:00:00.000Z
roundtrip=true
garbage_nan=true
empty_nan=true
bad_month_nan=true
bad_day_nan=true
bad_hour_nan=true
nonleap_feb29_nan=false
ctor_eq_parse=true

Node output:

date_only=1705276800000
year_month=1704067200000
year_only=1704067200000
date_only_iso=2024-01-15T00:00:00.000Z
z_basic=1705314600000
z_ms=1705314600123
z_no_sec=1705314600000
z_eq_utc=true
plus0_eq_z=true
minus0_eq_z=true
plus1=2024-01-15T09:30:00.000Z
plus0530=2024-01-15T05:00:00.000Z
plus14=2024-01-14T20:30:00.000Z
minus3=2024-01-15T13:30:00.000Z
minus0930=2024-01-15T20:00:00.000Z
offset_delta=3600000
roll_next_day=2024-01-16T01:30:00.000Z
roll_prev_day=2024-01-14T22:30:00.000Z
ms_1digit=2024-01-15T10:30:00.100Z
ms_2digit=2024-01-15T10:30:00.120Z
ms_3digit=2024-01-15T10:30:00.123Z
epoch=0
pre_epoch=-1
leap_day=2020-02-29T12:00:00.000Z
roundtrip=true
garbage_nan=true
empty_nan=true
bad_month_nan=true
bad_day_nan=true
bad_hour_nan=true
nonleap_feb29_nan=false
ctor_eq_parse=true

RTS output:

date_only=1705276800000
year_month=NaN
year_only=NaN
date_only_iso=2024-01-15T00:00:00.000Z
z_basic=1705314600000
z_ms=1705314600123
z_no_sec=1705276800000
z_eq_utc=true
plus0_eq_z=true
minus0_eq_z=true
plus1=2024-01-15T10:30:00.000Z
plus0530=2024-01-15T10:30:00.000Z
plus14=2024-01-15T10:30:00.000Z
minus3=2024-01-15T10:30:00.000Z
minus0930=2024-01-15T10:30:00.000Z
offset_delta=0
roll_next_day=2024-01-15T23:30:00.000Z
roll_prev_day=2024-01-15T00:30:00.000Z
ms_1digit=2024-01-15T10:30:00.100Z
ms_2digit=2024-01-15T10:30:00.120Z
ms_3digit=2024-01-15T10:30:00.123Z
epoch=0
pre_epoch=-1
leap_day=2020-02-29T12:00:00.000Z
roundtrip=true
garbage_nan=true
empty_nan=true
bad_month_nan=true
bad_day_nan=true
bad_hour_nan=false
nonleap_feb29_nan=false
ctor_eq_parse=true
claude-date-relational-compare — rts_diverge

Bun output:

lt=true
gt=false
lte=true
gte=false
b_gt_a=true
copy_lte=true
copy_gte=true
copy_lt=false
copy_gt=false
copy_eqeq=false
copy_eqeqeq=false
self_eqeqeq=true
time_eq=true
valueOf_eq=true
plus_eq=true
copy_noteq=true
vs_number_lt=true
vs_number_gte=true
eqeq_number=false
bad_lt=false
bad_gt=false
bad_lte=false
bad_gte=false
bad_lte_self=false
bad_eqeqeq_self=true
sorted=2024-01-01,2024-01-02,2024-01-03
min=2024-01-01T00:00:00.000Z
max=2024-01-02T00:00:00.000Z

Node output:

lt=true
gt=false
lte=true
gte=false
b_gt_a=true
copy_lte=true
copy_gte=true
copy_lt=false
copy_gt=false
copy_eqeq=false
copy_eqeqeq=false
self_eqeqeq=true
time_eq=true
valueOf_eq=true
plus_eq=true
copy_noteq=true
vs_number_lt=true
vs_number_gte=true
eqeq_number=false
bad_lt=false
bad_gt=false
bad_lte=false
bad_gte=false
bad_lte_self=false
bad_eqeqeq_self=true
sorted=2024-01-01,2024-01-02,2024-01-03
min=2024-01-01T00:00:00.000Z
max=2024-01-02T00:00:00.000Z

RTS output:

lt=true
gt=false
lte=true
gte=false
b_gt_a=true
copy_lte=true
copy_gte=true
copy_lt=false
copy_gt=false
copy_eqeq=true
copy_eqeqeq=false
self_eqeqeq=true
time_eq=true
valueOf_eq=true
plus_eq=true
copy_noteq=false
vs_number_lt=true
vs_number_gte=true
eqeq_number=true
bad_lt=false
bad_gt=false
bad_lte=false
bad_gte=false
bad_lte_self=false
bad_eqeqeq_self=true
sorted=2024-01-01,2024-01-02,2024-01-03
min=2024-01-01T00:00:00.000Z
max=2024-01-02T00:00:00.000Z
claude-date-symbol-toprimitive — rts_error

Bun output:

has_toPrimitive=true
is_own_of_proto=true
length=1
name=[Symbol.toPrimitive]
number_hint=1705314645123
number_hint_is_time=true
number_hint_type=number
default_hint_type=string
string_hint_type=string
default_eq_string=true
default_eq_toString=true
bad_hint_threw=true
bad_hint_name=TypeError
undef_hint_threw=true
undef_hint_name=TypeError
plus_is_number=true
Number_is_number=true
concat_is_string=true
concat_eq_toString=true
template_eq_toString=true
String_eq_toString=true
minus_numeric=true
invalid_number_hint_nan=true
invalid_string_hint=Invalid Date

Node output:

has_toPrimitive=true
is_own_of_proto=true
length=1
name=[Symbol.toPrimitive]
number_hint=1705314645123
number_hint_is_time=true
number_hint_type=number
default_hint_type=string
string_hint_type=string
default_eq_string=true
default_eq_toString=true
bad_hint_threw=true
bad_hint_name=TypeError
undef_hint_threw=true
undef_hint_name=TypeError
plus_is_number=true
Number_is_number=true
concat_is_string=true
concat_eq_toString=true
template_eq_toString=true
String_eq_toString=true
minus_numeric=true
invalid_number_hint_nan=true
invalid_string_hint=Invalid Date

RTS output:

has_toPrimitive=false
claude-date-utc-arity — rts_error

Bun output:

y_only=1704067200000
y_m=1704067200000
y_m_d=1704067200000
full=1704067200000
all_eq=true
a2=1717200000000
a3=1717977600000
a4=1718002800000
a5=1718003280000
a6=1718003289000
a7=1718003289010
zero_args_nan=true
extra_ignored=true
y0=1900-01-01T00:00:00.000Z
y70=1970-01-01T00:00:00.000Z
y99=1999-12-31T00:00:00.000Z
y99_is_1999=true
y100=0100-01-01T00:00:00.000Z
y100_year=100
y95_5=1995
neg_year=-1
nan_month=true
nan_day=true
nan_ms=true
frac_trunc=true

Node output:

y_only=1704067200000
y_m=1704067200000
y_m_d=1704067200000
full=1704067200000
all_eq=true
a2=1717200000000
a3=1717977600000
a4=1718002800000
a5=1718003280000
a6=1718003289000
a7=1718003289010
zero_args_nan=true
extra_ignored=true
y0=1900-01-01T00:00:00.000Z
y70=1970-01-01T00:00:00.000Z
y99=1999-12-31T00:00:00.000Z
y99_is_1999=true
y100=0100-01-01T00:00:00.000Z
y100_year=100
y95_5=1995
neg_year=-1
nan_month=true
nan_day=true
nan_ms=true
frac_trunc=true

RTS output:


79_subtle_digest — rts_error

Bun output:

sha256_8=ba7816bf8f01cfea

Node output:

sha256_8=ba7816bf8f01cfea

RTS output:


288_abortsignal_timeout_any — rts_diverge

Bun output:

a=true:a
c=true:a

Node output:

a=true:a
c=true:a

RTS output:

a=true:[object Object]
c=false:null
393_promise_microtask — rts_diverge

Bun output:

caught:handled
A1,B1,A2,B2,A3,B3
micro1,micro2,queueMicrotask,micro3,timeout
1,A,2,B,3,C

Node output:

caught:handled
A1,B1,A2,B2,A3,B3
micro1,micro2,queueMicrotask,micro3,timeout
1,A,2,B,3,C

RTS output:

caught:handled
A1,A2,A3,B1,B2,B3
micro1,micro2,queueMicrotask,micro3,timeout
1,A,2,B,3,C
62_abort_controller — rts_error

Bun output:

before=false
after=true
reason=stop
seen=event:true

Node output:

before=false
after=true
reason=stop
seen=event:true

RTS output:

before=false
84_abortsignal_advanced — rts_diverge

Bun output:

ab=true:x
to=true:TimeoutError

Node output:

ab=true:x
to=true:TimeoutError

RTS output:

ab=true:[object Object]
to=true:TimeoutError
41_closures_deep — rts_diverge

Bun output:

counter=4:5
iife=12
let=0,1,2,
var=0,1,2,
nested=15
this_arrow=8

Node output:

counter=4:5
iife=12
let=0,1,2,
var=0,1,2,
nested=15
this_arrow=8

RTS output:

counter=4:5
iife=12
let=0,0,0,
var=0,0,0,
nested=15
this_arrow=8
claude-closure-capture-let-loop — rts_diverge

Bun output:

0,1,2
0,1,2

Node output:

0,1,2
0,1,2

RTS output:

0,0,0
0,1,2
claude-closure-captures-mutable-param — rts_error

Bun output:

mutate_param=11,12,13
body_mutates=ab:AB
pair_init=1
pair_after_set=20
pair_bump=25 get=25
default=14,28 explicit=6,12
rest_add=3 sum=6
rest_rebind=0 sum=0
destructured=101/2
destructured_bumpB=3 read=101/3
shared_param=24
arg_by_value caller=5 inner=999

Node output:

mutate_param=11,12,13
body_mutates=ab:AB
pair_init=1
pair_after_set=20
pair_bump=25 get=25
default=14,28 explicit=6,12
rest_add=3 sum=6
rest_rebind=0 sum=0
destructured=101/2
destructured_bumpB=3 read=101/3
shared_param=24
arg_by_value caller=5 inner=999

RTS output:


claude-closure-for-of-per-iteration — rts_error

Bun output:

const_head=xyz
let_head_mutated=10,20,30
var_head=3,3,3
destructure_head=a1,b2
body_let=p1!,p2!
nested=1a,1b,2a,2b
independent_cells=111,20

Node output:

const_head=xyz
let_head_mutated=10,20,30
var_head=3,3,3
destructure_head=a1,b2
body_let=p1!,p2!
nested=1a,1b,2a,2b
independent_cells=111,20

RTS output:


claude-closure-from-try-finally — rts_diverge

Bun output:

mutated_in_finally=finally
returned=1 closure=100
catch_binding=boom/changed
catch_shadow=thrown_e:outer_e
finally_no_return=from_try:b
made_in_finally=in_finally
loop_try=ok0,err1,ok2
partial=a,b,caught,count=2

Node output:

mutated_in_finally=finally
returned=1 closure=100
catch_binding=boom/changed
catch_shadow=thrown_e:outer_e
finally_no_return=from_try:b
made_in_finally=in_finally
loop_try=ok0,err1,ok2
partial=a,b,caught,count=2

RTS output:

mutated_in_finally=finally
returned=1 closure=100
catch_binding=boom/changed
catch_shadow=thrown_e:outer_e
finally_no_return=from_try:b
made_in_finally=in_finally
loop_try=ok0,err0,ok0
partial=a,b,caught,count=2
claude-closure-reads-live-not-snapshot — rts_error

Bun output:

before=1
after=2
after2=42
snap=1 live=99
param_mutated_after=15
early=8 late=8
var_hoisted=3:4
via_binding=second via_capture=first
interleaved=012
mutate_content=2
rebind=3

Node output:

before=1
after=2
after2=42
snap=1 live=99
param_mutated_after=15
early=8 late=8
var_hoisted=3:4
via_binding=second via_capture=first
interleaved=012
mutate_content=2
rebind=3

RTS output:


claude-compose-reassigned-binding — rts_error

Bun output:

12
11
3
5

Node output:

12
11
3
5

RTS output:


claude-let-vs-var-loop-closures — rts_diverge

Bun output:

0
1
2
3
3
3

Node output:

0
1
2
3
3
3

RTS output:

0
0
0
0
0
0
claude-nested-loop-let-closures — rts_diverge

Bun output:

0 1 10 11 20 21

Node output:

0 1 10 11 20 21

RTS output:

0 0 0 0 0 0
codex_arguments_callee_shape — rts_error

Bun output:

3
function
true

Node output:

3
function
true

RTS output:


codex_bound_constructor_new_target — rts_error

Bun output:

2:5:7
true
true

Node output:

2:5:7
true
true

RTS output:


codex_closure_eval_mutates_outer — rts_error

Bun output:

3
5
5

Node output:

3
5
5

RTS output:


codex_function_constructor_scope — rts_error

Bun output:

missing
5

Node output:

missing
5

RTS output:


codex_function_name_inferred_destructure — rts_error

Bun output:

a
b
c
d

Node output:

a
b
c
d

RTS output:


308_finalization_registry_shape — rts_error

Bun output:

type=function
reg=function
unreg=function

Node output:

type=function
reg=function
unreg=function

RTS output:


codex_async_generator_yield_await_finally — rts_diverge

Bun output:

{"value":"a","done":false}
{"value":"fin","done":false}
{"value":"ret","done":true}

Node output:

{"value":"a","done":false}
{"value":"fin","done":false}
{"value":"ret","done":true}

RTS output:

{"done":true}
{"value":"fin","done":false}
{"done":true}
codex_generator_delegation_exception_path — rts_diverge

Bun output:

{"value":"n","done":false}
{"value":"handled","done":false}
{"done":true}
next|throw:E|return

Node output:

{"value":"n","done":false}
{"value":"handled","done":false}
{"done":true}
next|throw:E|return

RTS output:

{"value":1073741886,"done":false}
{"value":{"message":"E","name":"Error","stack":""},"done":true}
{"value":"R","done":true}
codex_yield_star_iterator_return_chain — rts_diverge

Bun output:

{"value":0,"done":false}
{"value":"closed","done":true}
inner-next0|inner-return:bye

Node output:

{"value":0,"done":false}
{"value":"closed","done":true}
inner-next0|inner-return:bye

RTS output:

{"value":0,"done":false}
{"value":"bye","done":true}
inner-next0|inner-next1|inner-next2|inner-next3|outer-after:-1e-323
59_intl_basics — rts_error

Bun output:

money=$1,234.50
date=10/05/2024
cmp=0

Node output:

money=$1,234.50
date=10/05/2024
cmp=0

RTS output:


71_intl_segmenter — rts_error

Bun output:

segments=hi:true| :false|there:true

Node output:

segments=hi:true| :false|there:true

RTS output:


78_intl_more — rts_error

Bun output:

one=one
two=other
list=a, b, and c
rel=yesterday

Node output:

one=one
two=other
list=a, b, and c
rel=yesterday

RTS output:


305_iterator_helpers — rts_error

Bun output:

arr=6,8
red=5

Node output:

arr=6,8
red=5

RTS output:


392_async_iterator_advanced — rts_diverge

Bun output:

content-1,content-2,err:page 3 failed
4,16,36,64
1
2
final
true
a,b,c

Node output:

content-1,content-2,err:page 3 failed
4,16,36,64
1
2
final
true
a,b,c

RTS output:

undefined
claude-custom-symbol-iterator-manual-next — rts_error

Bun output:

counter=10,20,30
reiterate=10,20,30
emptyCount=0
trailing=a|len=1
truthyDone=1,2
missingDone=1,2
values=4|nextCalls=5
selfIter=s1,s2

Node output:

counter=10,20,30
reiterate=10,20,30
emptyCount=0
trailing=a|len=1
truthyDone=1,2
missingDone=1,2
values=4|nextCalls=5
selfIter=s1,s2

RTS output:


claude-destructuring-lazy-iterator-pull — rts_error

Bun output:

two=1,2
twoLog=next1,next2,return
one=1|log=next1,return
zeroLog=return|len=1
hole=2|log=next1,next2,return
rest=1|2,3|log=next1,next2,next3,next4
over=1,2,undefined
overLog=next1,next2,next3
defaults=DEF,null,5
swap=2,1
nested=1,100|log=outer1,outerReturn

Node output:

two=1,2
twoLog=next1,next2,return
one=1|log=next1,return
zeroLog=return|len=1
hole=2|log=next1,next2,return
rest=1|2,3|log=next1,next2,next3,next4
over=1,2,undefined
overLog=next1,next2,next3
defaults=DEF,null,5
swap=2,1
nested=1,100|log=outer1,outerReturn

RTS output:


claude-manual-iterator-past-done — rts_error

Bun output:

a1={"value":1,"done":false}
a2={"value":2,"done":false}
a3={"done":true}
a4={"done":true}
a5={"done":true}
stableDone=true|true
stableValue=true,true
freshResults=true
keys=done,value
emptyFirst={"done":true}
independent=3,1
live=2,3|done=true
shrunk={"done":true}
m1={"value":"m","done":false}
m2={"value":"post","done":true}
m3={"value":"post","done":true}
manualCalls=3
resume=2,3,4
spreadRest=3,4
s1=a
s2=b
s3=undefined|done=true
set1={"value":1,"done":false}
set2={"done":true}
set3={"done":true}

Node output:

a1={"value":1,"done":false}
a2={"value":2,"done":false}
a3={"done":true}
a4={"done":true}
a5={"done":true}
stableDone=true|true
stableValue=true,true
freshResults=true
keys=done,value
emptyFirst={"done":true}
independent=3,1
live=2,3|done=true
shrunk={"done":true}
m1={"value":"m","done":false}
m2={"value":"post","done":true}
m3={"value":"post","done":true}
manualCalls=3
resume=2,3,4
spreadRest=3,4
s1=a
s2=b
s3=undefined|done=true
set1={"value":1,"done":false}
set2={"done":true}
set3={"done":true}

RTS output:


claude-map-set-for-of-shape — rts_error

Bun output:

mapPairs=true:2:a=1|true:2:b=2|true:2:c=3
mapDestructured=a=1,b=2,c=3
mapDefaultIsEntries=true
mapKeys=a,b,c
mapValues=1,2,3
mapEntries=a1,b2,c3
overwriteOrder=x,y
readdOrder=q,p
emptyMap=0
setValues=10,20,30
setDefaultIsValues=true
setKeysIsValues=true
setEntries=10:10,20:20,30:30
setDedup=3,1,2|size=3
mi1=["a",1]
mi2=["b",2]
mi3=["c",3]
mi4=undefined|done=true
iterSelfIterable=true
spreadPairsLen=3|first=a=1
fromMatchesSpread=true

Node output:

mapPairs=true:2:a=1|true:2:b=2|true:2:c=3
mapDestructured=a=1,b=2,c=3
mapDefaultIsEntries=true
mapKeys=a,b,c
mapValues=1,2,3
mapEntries=a1,b2,c3
overwriteOrder=x,y
readdOrder=q,p
emptyMap=0
setValues=10,20,30
setDefaultIsValues=true
setKeysIsValues=true
setEntries=10:10,20:20,30:30
setDedup=3,1,2|size=3
mi1=["a",1]
mi2=["b",2]
mi3=["c",3]
mi4=undefined|done=true
iterSelfIterable=true
spreadPairsLen=3|first=a=1
fromMatchesSpread=true

RTS output:

mapPairs=true:2:a=1|true:2:b=2|true:2:c=3
mapDestructured=a=1,b=2,c=3
mapDefaultIsEntries=false
mapKeys=a,b,c
mapValues=1,2,3
mapEntries=a1,b2,c3
overwriteOrder=x,y
readdOrder=q,p
emptyMap=0
setValues=10,20,30
setDefaultIsValues=false
setKeysIsValues=false
setEntries=10:10,20:20,30:30
setDedup=3,1,2|size=3
mi1=["a",1]
mi2=["b",2]
mi3=["c",3]
mi4=undefined|done=true
claude-spread-custom-iterable — rts_error

Bun output:

arrayLiteral=1,2,3
arrayLiteralCalls=4
middle=0,1,2,9
twoSpreads=x,y,z
callSpread=6
emptySpread=0|calls=1
drainLen=5|nextCalls=6
identity=true,true
orderPreserved=3,1,3,2
holesLen=3
holeVals=undefined,null,0

Node output:

arrayLiteral=1,2,3
arrayLiteralCalls=4
middle=0,1,2,9
twoSpreads=x,y,z
callSpread=6
emptySpread=0|calls=1
drainLen=5|nextCalls=6
identity=true,true
orderPreserved=3,1,3,2
holesLen=3
holeVals=undefined,null,0

RTS output:


claude-string-iterator-code-points — rts_error

Bun output:

length=4
fromLen=3
spreadLen=3
forOfUnitLens=1,2,1
indexUnitLen=1
iterCodePoint=128512
codePointAt=128512
charCodeAt=55357
bmpLen=5|bmpPoints=5
manyLen=6|manyPoints=3
roundTrip=true
loneLen=3|lonePoints=3
loneMid=55357
reversedPoints=2
mapFn=97,128512,98
reIterable=true|3
manual1=a|done=false
manual2Points=2|done=false
manual3=b|done=false
manual4=undefined|done=true
emptyIter=0
splitLen=4|iterLen=3

Node output:

length=4
fromLen=3
spreadLen=3
forOfUnitLens=1,2,1
indexUnitLen=1
iterCodePoint=128512
codePointAt=128512
charCodeAt=55357
bmpLen=5|bmpPoints=5
manyLen=6|manyPoints=3
roundTrip=true
loneLen=3|lonePoints=3
loneMid=55357
reversedPoints=2
mapFn=97,128512,98
reIterable=true|3
manual1=a|done=false
manual2Points=2|done=false
manual3=b|done=false
manual4=undefined|done=true
emptyIter=0
splitLen=4|iterLen=3

RTS output:

length=2
fromLen=2
spreadLen=2
forOfUnitLens=1,1
indexUnitLen=1
iterCodePoint=98
codePointAt=98
charCodeAt=98
bmpLen=5|bmpPoints=5
manyLen=0|manyPoints=0
roundTrip=true
loneLen=2|lonePoints=2
loneMid=121
reversedPoints=0
mapFn=97,98
reIterable=true|2
claude-symbol-iterator-inherited-lookup — rts_error

Bun output:

inherited=p1,p2,p3
ownOnChild=false
ownOnParent=true
shadowed=own1,own2
parentUnaffected=p1,p2,p3
threeLevels=p1,p2,p3
classRange=1,2,3,4
onProtoNotInstance=false,true
subclass=5,6,7
override=4,3,2,1
beforeAdd=threwBefore|afterAdd=late
removable=ok->threw
arrOwn=false
arrProto=true
arrChildIter=7,8,9

Node output:

inherited=p1,p2,p3
ownOnChild=false
ownOnParent=true
shadowed=own1,own2
parentUnaffected=p1,p2,p3
threeLevels=p1,p2,p3
classRange=1,2,3,4
onProtoNotInstance=false,true
subclass=5,6,7
override=4,3,2,1
beforeAdd=threwBefore|afterAdd=late
removable=ok->threw
arrOwn=false
arrProto=true
arrChildIter=7,8,9

RTS output:


codex_async_iterator_break_close — rts_error

Bun output:

1
next0,next1,return-start,return-end

Node output:

1
next0,next1,return-start,return-end

RTS output:


293_json_reviver_this — rts_diverge

Bun output:

obj={"a":2,"b":4}
seen=2

Node output:

obj={"a":2,"b":4}
seen=2

RTS output:

obj=undefined
seen=
403_json_replacer_array_order — rts_diverge

Bun output:

{"c":3,"a":1,"nested":{"a":8}}
[{"c":3,"a":1,"nested":{"a":8}},{"c":5,"a":4}]
{"1":"one","01":"zero-one","a":"aye"}

Node output:

{"c":3,"a":1,"nested":{"a":8}}
[{"c":3,"a":1,"nested":{"a":8}},{"c":5,"a":4}]
{"1":"one","01":"zero-one","a":"aye"}

RTS output:

{"c":3,"a":1}
[{"c":3,"a":1},{"c":5,"a":4}]
{"1":"one","01":"zero-one","a":"aye"}
claude-parse-number-edges — rts_diverge

Bun output:

zero=0
neg=-5
big=9007199254740991
neg_zero=0
neg_zero_is=true
neg_zero_eq_zero=true
neg_zero_arr_is=true
pos_zero_is=true
exp_lower=1000
exp_upper=1000
exp_plus=1000
exp_minus=0.001
exp_frac=150
exp_zero=5
exp_neg_base=-2500
exp_big=1e+21
exp_overflow=Infinity
exp_underflow=0
frac=0.5
precision_loss=9007199254740992
many_digits=0.1
long_int=1.2345678901234568e+29
point_one=0.1
roundtrip=true
leading_plus=throw
leading_zero=throw
leading_dot=throw
trailing_dot=throw
hex=throw
infinity=throw
nan=throw
underscore=throw
empty_exp=throw
double_neg=throw
neg_dot=throw
whitespace_ok=ok

Node output:

zero=0
neg=-5
big=9007199254740991
neg_zero=0
neg_zero_is=true
neg_zero_eq_zero=true
neg_zero_arr_is=true
pos_zero_is=true
exp_lower=1000
exp_upper=1000
exp_plus=1000
exp_minus=0.001
exp_frac=150
exp_zero=5
exp_neg_base=-2500
exp_big=1e+21
exp_overflow=Infinity
exp_underflow=0
frac=0.5
precision_loss=9007199254740992
many_digits=0.1
long_int=1.2345678901234568e+29
point_one=0.1
roundtrip=true
leading_plus=throw
leading_zero=throw
leading_dot=throw
trailing_dot=throw
hex=throw
infinity=throw
nan=throw
underscore=throw
empty_exp=throw
double_neg=throw
neg_dot=throw
whitespace_ok=ok

RTS output:

zero=0
neg=-5
big=9007199254740991
neg_zero=0
neg_zero_is=true
neg_zero_eq_zero=true
neg_zero_arr_is=true
pos_zero_is=true
exp_lower=1000
exp_upper=1000
exp_plus=1000
exp_minus=0.001
exp_frac=150
exp_zero=5
exp_neg_base=-2500
exp_big=1e+21
exp_overflow=Infinity
exp_underflow=0
frac=0.5
precision_loss=9007199254740992
many_digits=0.1
long_int=1.2345678901234568e+29
point_one=0.1
roundtrip=true
leading_plus=ok
leading_zero=ok
leading_dot=ok
trailing_dot=ok
hex=ok
infinity=ok
nan=ok
underscore=ok
empty_exp=ok
double_neg=ok
neg_dot=ok
whitespace_ok=ok
claude-reviver-returning-undefined — rts_diverge

Bun output:

obj_deleted={"a":1,"c":3}
obj_has_b=false
obj_keys=a,c
obj_all_deleted={}
arr_json=[1,null,3]
arr_len=3
arr_has_1=false
arr_idx1=undefined
arr_keys=0,2
arr_all_json=[null,null]
arr_all_len=2
root_isundef=true
root_str=undefined
implicit_undef={"a":1}
nested={"outer":{"keep":1}}
null_kept={"a":1,"b":null}
null_has_b=true
falsy_kept={"a":0,"b":"","c":false}

Node output:

obj_deleted={"a":1,"c":3}
obj_has_b=false
obj_keys=a,c
obj_all_deleted={}
arr_json=[1,null,3]
arr_len=3
arr_has_1=false
arr_idx1=undefined
arr_keys=0,2
arr_all_json=[null,null]
arr_all_len=2
root_isundef=true
root_str=undefined
implicit_undef={"a":1}
nested={"outer":{"keep":1}}
null_kept={"a":1,"b":null}
null_has_b=true
falsy_kept={"a":0,"b":"","c":false}

RTS output:

obj_deleted={"a":1,"c":3}
obj_has_b=false
obj_keys=a,c
obj_all_deleted={}
arr_json=[1,null,3]
arr_len=3
arr_has_1=true
arr_idx1=undefined
arr_keys=0,1,2
arr_all_json=[null,null]
arr_all_len=2
root_isundef=true
root_str=undefined
implicit_undef={"a":1}
nested={"outer":{"keep":1}}
null_kept={"a":1,"b":null}
null_has_b=true
falsy_kept={"a":0,"b":"","c":false}
claude-stringify-number-edges — rts_diverge

Bun output:

neg_zero=0
neg_zero_obj={"a":0}
neg_zero_arr=[0,0]
pos_zero=0
inf=null
neg_inf=null
nan=null
nonfinite_obj={"a":null,"b":null,"c":null}
nonfinite_arr=[null,null,null]
div_zero=null
max_safe=9007199254740991
max_safe_plus=9007199254740992
max_value=1.7976931348623157e+308
min_value=5e-324
e21=1e+21
e20=100000000000000000000
neg_e21=-1e+21
e_minus_7=1e-7
e_minus_6=0.000001
third=0.3333333333333333
point_sum=0.30000000000000004
big_frac=123456789.12345679
neg_frac=-0.5
overflow=null
wrapper=5
wrapper_nan=null
neg_big=-9007199254740991
int_round=100
float_int=100

Node output:

neg_zero=0
neg_zero_obj={"a":0}
neg_zero_arr=[0,0]
pos_zero=0
inf=null
neg_inf=null
nan=null
nonfinite_obj={"a":null,"b":null,"c":null}
nonfinite_arr=[null,null,null]
div_zero=null
max_safe=9007199254740991
max_safe_plus=9007199254740992
max_value=1.7976931348623157e+308
min_value=5e-324
e21=1e+21
e20=100000000000000000000
neg_e21=-1e+21
e_minus_7=1e-7
e_minus_6=0.000001
third=0.3333333333333333
point_sum=0.30000000000000004
big_frac=123456789.12345679
neg_frac=-0.5
overflow=null
wrapper=5
wrapper_nan=null
neg_big=-9007199254740991
int_round=100
float_int=100

RTS output:

neg_zero=0
neg_zero_obj={"a":0}
neg_zero_arr=[0,0]
pos_zero=0
inf=null
neg_inf=null
nan=null
nonfinite_obj={"a":null,"b":null,"c":null}
nonfinite_arr=[null,null,null]
div_zero=null
max_safe=9007199254740991
max_safe_plus=9007199254740992
max_value=1.7976931348623157e+308
min_value=5e-324
e21=1e+21
e20=100000000000000000000
neg_e21=-1e+21
e_minus_7=1e-7
e_minus_6=0.000001
third=0.3333333333333333
point_sum=0.30000000000000004
big_frac=123456789.12345679
neg_frac=-0.5
overflow=null
wrapper={}
wrapper_nan={}
neg_big=-9007199254740991
int_round=100
float_int=100
claude-stringify-space-arg — rts_diverge

Bun output:

space_0="{\"a\":1,\"b\":{\"c\":2}}"
space_1="{\n \"a\": 1,\n \"b\": {\n  \"c\": 2\n }\n}"
space_2="{\n  \"a\": 1,\n  \"b\": {\n    \"c\": 2\n  }\n}"
space_3="{\n   \"a\": 1,\n   \"b\": {\n      \"c\": 2\n   }\n}"
space_10_eq_11=true
space_10_eq_100=true
space_10_eq_inf=true
space_10_indent="          \"a\": 1,"
neg_is_compact=true
nan_is_compact=true
zero_is_compact=true
null_is_compact=true
undef_is_compact=true
frac_eq_2=true
str_dash="{\n--\"a\": 1,\n--\"b\": {\n----\"c\": 2\n--}\n}"
str_tab="{\n\t\"a\": 1,\n\t\"b\": {\n\t\t\"c\": 2\n\t}\n}"
str_empty_is_compact=true
str_clamp="0123456789\"a\": 1,"
num_wrapper=true
str_wrapper=true
bool_is_compact=true
obj_is_compact=true
arr_space="[\n 1,\n [\n  2\n ]\n]"
empty_obj="{}"
empty_arr="[]"
empty_nested="{\n \"a\": {},\n \"b\": []\n}"
scalar="5"

Node output:

space_0="{\"a\":1,\"b\":{\"c\":2}}"
space_1="{\n \"a\": 1,\n \"b\": {\n  \"c\": 2\n }\n}"
space_2="{\n  \"a\": 1,\n  \"b\": {\n    \"c\": 2\n  }\n}"
space_3="{\n   \"a\": 1,\n   \"b\": {\n      \"c\": 2\n   }\n}"
space_10_eq_11=true
space_10_eq_100=true
space_10_eq_inf=true
space_10_indent="          \"a\": 1,"
neg_is_compact=true
nan_is_compact=true
zero_is_compact=true
null_is_compact=true
undef_is_compact=true
frac_eq_2=true
str_dash="{\n--\"a\": 1,\n--\"b\": {\n----\"c\": 2\n--}\n}"
str_tab="{\n\t\"a\": 1,\n\t\"b\": {\n\t\t\"c\": 2\n\t}\n}"
str_empty_is_compact=true
str_clamp="0123456789\"a\": 1,"
num_wrapper=true
str_wrapper=true
bool_is_compact=true
obj_is_compact=true
arr_space="[\n 1,\n [\n  2\n ]\n]"
empty_obj="{}"
empty_arr="[]"
empty_nested="{\n \"a\": {},\n \"b\": []\n}"
scalar="5"

RTS output:

space_0="{\"a\":1,\"b\":{\"c\":2}}"
space_1="{\n \"a\": 1,\n \"b\": {\n  \"c\": 2\n }\n}"
space_2="{\n  \"a\": 1,\n  \"b\": {\n    \"c\": 2\n  }\n}"
space_3="{\n   \"a\": 1,\n   \"b\": {\n      \"c\": 2\n   }\n}"
space_10_eq_11=true
space_10_eq_100=true
space_10_eq_inf=true
space_10_indent="          \"a\": 1,"
neg_is_compact=true
nan_is_compact=false
zero_is_compact=true
null_is_compact=true
undef_is_compact=true
frac_eq_2=false
str_dash="{\n--\"a\": 1,\n--\"b\": {\n----\"c\": 2\n--}\n}"
str_tab="{\n\t\"a\": 1,\n\t\"b\": {\n\t\t\"c\": 2\n\t}\n}"
str_empty_is_compact=true
str_clamp="0123456789\"a\": 1,"
num_wrapper=false
str_wrapper=false
bool_is_compact=true
obj_is_compact=true
arr_space="[\n 1,\n [\n  2\n ]\n]"
empty_obj="{}"
empty_arr="[]"
empty_nested="{\n \"a\": {},\n \"b\": []\n}"
scalar="5"
claude-stringify-string-escapes — rts_diverge

Bun output:

quote="a\"b"
backslash="a\\b"
newline="a\nb"
cr="a\rb"
tab="a\tb"
backspace="a\bb"
formfeed="a\fb"
nul="a\u0000b"
soh="a\u0001b"
vtab="a\u000bb"
esc="a\u001bb"
us="a\u001fb"
del="a�b"
space="a b"
slash="a/b"
apostrophe="a'b"
accent="café"
cjk="日本"
lone_high="\ud800"
lone_low="\udfff"
lone_mid="a\ud834b"
pair="😀"
pair_len=4
reversed_pair="\ude00\ud83d"
key_escape={"a\nb":1}
key_quote={"a\"b":1}
key_ctrl={"a\u0001b":1}
roundtrip=true
empty=""

Node output:

quote="a\"b"
backslash="a\\b"
newline="a\nb"
cr="a\rb"
tab="a\tb"
backspace="a\bb"
formfeed="a\fb"
nul="a\u0000b"
soh="a\u0001b"
vtab="a\u000bb"
esc="a\u001bb"
us="a\u001fb"
del="a�b"
space="a b"
slash="a/b"
apostrophe="a'b"
accent="café"
cjk="日本"
lone_high="\ud800"
lone_low="\udfff"
lone_mid="a\ud834b"
pair="😀"
pair_len=4
reversed_pair="\ude00\ud83d"
key_escape={"a\nb":1}
key_quote={"a\"b":1}
key_ctrl={"a\u0001b":1}
roundtrip=true
empty=""

RTS output:

quote="a\"b"
backslash="a\\b"
newline="a\nb"
cr="a\rb"
tab="a\tb"
backspace="a�b"
formfeed="ab"
nul="ab"
soh="a�b"
vtab="a�b"
esc="a�b"
us="a�b"
del="a�b"
space="a b"
slash="a/b"
apostrophe="a'b"
accent="café"
cjk="日本"
lone_high="�"
lone_low="�"
lone_mid="a�b"
pair="😀"
pair_len=4
reversed_pair="��"
key_escape={"a\nb":1}
key_quote={"a\"b":1}
key_ctrl={"a�b":1}
roundtrip=true
empty=""
claude-stringify-unserializable — rts_diverge

Bun output:

top_undef=undefined
top_undef_isundef=true
top_fn=undefined
top_fn_isundef=true
top_sym=undefined
top_sym_isundef=true
obj_undef={"a":1,"c":2}
obj_fn={"a":1,"c":2}
obj_sym={"a":1,"c":2}
obj_all_gone={}
arr_undef=[1,null,2]
arr_fn=[1,null,2]
arr_sym=[1,null,2]
arr_all_null=[null,null,null]
arr_hole=[1,null,null,4]
nested={"a":[null,{"c":3}]}
mix={"list":[null]}
tojson_undef_top_isundef=true
tojson_undef_in_obj={"b":1}
tojson_undef_in_arr=[null,1]
replacer_undef={"a":1}

Node output:

top_undef=undefined
top_undef_isundef=true
top_fn=undefined
top_fn_isundef=true
top_sym=undefined
top_sym_isundef=true
obj_undef={"a":1,"c":2}
obj_fn={"a":1,"c":2}
obj_sym={"a":1,"c":2}
obj_all_gone={}
arr_undef=[1,null,2]
arr_fn=[1,null,2]
arr_sym=[1,null,2]
arr_all_null=[null,null,null]
arr_hole=[1,null,null,4]
nested={"a":[null,{"c":3}]}
mix={"list":[null]}
tojson_undef_top_isundef=true
tojson_undef_in_obj={"b":1}
tojson_undef_in_arr=[null,1]
replacer_undef={"a":1}

RTS output:

top_undef=undefined
top_undef_isundef=true
top_fn=undefined
top_fn_isundef=true
top_sym={}
top_sym_isundef=false
obj_undef={"a":1,"c":2}
obj_fn={"a":1,"c":2}
obj_sym={"a":1,"b":{},"c":2}
obj_all_gone={"d":{}}
arr_undef=[1,null,2]
arr_fn=[1,null,2]
arr_sym=[1,{},2]
arr_all_null=[null,null,{}]
arr_hole=[1,null,null,4]
nested={"a":[null,{"c":3}]}
mix={"list":[null]}
tojson_undef_top_isundef=true
tojson_undef_in_obj={"b":1}
tojson_undef_in_arr=[null,1]
replacer_undef={"a":1}
codex_json_bigint_tojson_monkeypatch — rts_error

Bun output:

{"x":"5n","arr":["1n","2n"]}
TypeError

Node output:

{"x":"5n","arr":["1n","2n"]}
TypeError

RTS output:


codex_json_stringify_propertylist_objects — rts_diverge

Bun output:

{"b":"B","1":"one","a":"A"}
[{"b":2,"1":3,"a":1}]

Node output:

{"b":"B","1":"one","a":"A"}
[{"b":2,"1":3,"a":1}]

RTS output:

{"a":"A"}
[{"a":1}]
100_dynamic_import — rts_error

Bun output:

named=7
default=default(x)
same=true
count=42

Node output:

named=7
default=default(x)
same=true
count=42

RTS output:


344_bundler_helpers — rts_error

Bun output:

99 2
2 3
1,2,3,4
hello from derived
true
awaiter result: 7

Node output:

99 2
2 3
1,2,3,4
hello from derived
true
awaiter result: 7

RTS output:


394_structuredclone_complex — rts_diverge

Bun output:

3
99
false
true
2026
2099
true
hello
gi
false
false
true
true
false
true
test
1
true
false

Node output:

3
99
false
true
2026
2099
true
hello
gi
false
false
true
true
false
true
test
1
true
false

RTS output:

3
99
false
true
2026
2099
true
hello
gi
true
false
true
true
false
true
test
1
true
false
codex_structuredclone_transfer_detach — rts_diverge

Bun output:

0
4
1,2,3,4

Node output:

0
4
1,2,3,4

RTS output:

4
4
1,2,3,4
198_number_parseint_parsefloat — rts_error

Bun output:

parseInt_123=123
parseInt_ff_16=255
parseInt_10_2=2
parseFloat_3.14=3.14
parseFloat_1e2=100
same_int=true
same_float=true

Node output:

parseInt_123=123
parseInt_ff_16=255
parseInt_10_2=2
parseFloat_3.14=3.14
parseFloat_1e2=100
same_int=true
same_float=true

RTS output:


claude-number-string-whitespace-grammar — rts_diverge

Bun output:

space=1
tab=1
newline=1
cr=1
formfeed=1
vtab=1
mixed=1
only_space=0
only_tab=0
only_newline=0
empty=0
many_spaces=0
nbsp_u00A0=1
ogham_u1680=1
enquad_u2000=1
emquad_u2001=1
thinspace_u2009=1
hairspace_u200A=1
lineSep_u2028=1
paraSep_u2029=1
narrownbsp_u202F=1
mathspace_u205F=1
ideographic_u3000=1
bom_uFEFF=1
only_nbsp=0
only_bom=0
zwsp_u200B=NaN
zwnj_u200C=NaN
zwj_u200D=NaN
nul=NaN
mongolian_u180E=NaN
inner_space=NaN
inner_tab=NaN
space_after_sign=NaN
space_in_exp=NaN
space_before_dot=NaN
space_plus=5
space_minus=-5
tab_minus_float=-3.14
plus_only=NaN
minus_only=NaN
space_plus_space=NaN
space_Infinity=Infinity
space_neg_Infinity=-Infinity
nbsp_Infinity=Infinity
Infinity_lower=NaN
Infinity_trailing_junk=NaN
space_hex=31
tab_bin=5
newline_octal=15
hex_inner_space=NaN
hex_sign=NaN
hex_plus=NaN
space_exp=1000
space_dot5=0.5
space_5dot=5
space_neg_exp=-0.0015
underscore=NaN
space_underscore=NaN
--- parseFloat contrast ---
parseFloat(' 1 ')=1
parseFloat('1 2')=1
parseFloat('\u00A01')=1
parseFloat('\u200B1')=NaN
parseFloat('1_000')=1
parseFloat(' Infinity ')=Infinity
parseFloat(' 0x1F ')=0

Node output:

space=1
tab=1
newline=1
cr=1
formfeed=1
vtab=1
mixed=1
only_space=0
only_tab=0
only_newline=0
empty=0
many_spaces=0
nbsp_u00A0=1
ogham_u1680=1
enquad_u2000=1
emquad_u2001=1
thinspace_u2009=1
hairspace_u200A=1
lineSep_u2028=1
paraSep_u2029=1
narrownbsp_u202F=1
mathspace_u205F=1
ideographic_u3000=1
bom_uFEFF=1
only_nbsp=0
only_bom=0
zwsp_u200B=NaN
zwnj_u200C=NaN
zwj_u200D=NaN
nul=NaN
mongolian_u180E=NaN
inner_space=NaN
inner_tab=NaN
space_after_sign=NaN
space_in_exp=NaN
space_before_dot=NaN
space_plus=5
space_minus=-5
tab_minus_float=-3.14
plus_only=NaN
minus_only=NaN
space_plus_space=NaN
space_Infinity=Infinity
space_neg_Infinity=-Infinity
nbsp_Infinity=Infinity
Infinity_lower=NaN
Infinity_trailing_junk=NaN
space_hex=31
tab_bin=5
newline_octal=15
hex_inner_space=NaN
hex_sign=NaN
hex_plus=NaN
space_exp=1000
space_dot5=0.5
space_5dot=5
space_neg_exp=-0.0015
underscore=NaN
space_underscore=NaN
--- parseFloat contrast ---
parseFloat(' 1 ')=1
parseFloat('1 2')=1
parseFloat('\u00A01')=1
parseFloat('\u200B1')=NaN
parseFloat('1_000')=1
parseFloat(' Infinity ')=Infinity
parseFloat(' 0x1F ')=0

RTS output:

space=1
tab=1
newline=1
cr=1
formfeed=1
vtab=1
mixed=1
only_space=0
only_tab=0
only_newline=0
empty=0
many_spaces=0
nbsp_u00A0=1
ogham_u1680=1
enquad_u2000=1
emquad_u2001=1
thinspace_u2009=1
hairspace_u200A=1
lineSep_u2028=1
paraSep_u2029=1
narrownbsp_u202F=1
mathspace_u205F=1
ideographic_u3000=1
bom_uFEFF=NaN
only_nbsp=0
only_bom=NaN
zwsp_u200B=NaN
zwnj_u200C=NaN
zwj_u200D=NaN
nul=NaN
mongolian_u180E=NaN
inner_space=NaN
inner_tab=NaN
space_after_sign=NaN
space_in_exp=NaN
space_before_dot=NaN
space_plus=5
space_minus=-5
tab_minus_float=-3.14
plus_only=NaN
minus_only=NaN
space_plus_space=NaN
space_Infinity=Infinity
space_neg_Infinity=-Infinity
nbsp_Infinity=Infinity
Infinity_lower=Infinity
Infinity_trailing_junk=NaN
space_hex=31
tab_bin=5
newline_octal=15
hex_inner_space=NaN
hex_sign=NaN
hex_plus=NaN
space_exp=1000
space_dot5=0.5
space_5dot=5
space_neg_exp=-0.0015
underscore=NaN
space_underscore=NaN
--- parseFloat contrast ---
parseFloat(' 1 ')=1
parseFloat('1 2')=1
parseFloat('\u00A01')=1
parseFloat('\u200B1')=NaN
parseFloat('1_000')=1
parseFloat(' Infinity ')=Infinity
parseFloat(' 0x1F ')=0
claude-tofixed-digit-boundaries — rts_diverge

Bun output:

--- digit sweep on 1.23456789 ---
d0=1
d1=1.2
d2=1.23
d3=1.235
d4=1.2346
d5=1.23457
d6=1.234568
d7=1.2345679
d8=1.23456789
d9=1.234567890
d10=1.2345678900
--- digit sweep on 9.99999 ---
d0=10
d1=10.0
d2=10.00
d3=10.000
d4=10.0000
d5=9.99999
d6=9.999990
d7=9.9999900
d8=9.99999000
--- toFixed(0) ---
(1.5).toFixed(0)=2
(0).toFixed(0)=0
(-0).toFixed(0)=0
(0.4).toFixed(0)=0
(-0.4).toFixed(0)=-0
(-0.6).toFixed(0)=-1
(1e20).toFixed(0)=100000000000000000000
--- undefined arg == 0 ---
(3.7).toFixed()=4
(3.7).toFixed(undefined)=4
--- 1e21 boundary ---
(1e20).toFixed(2)=100000000000000000000.00
(1e21).toFixed(2)=1e+21
(1e21).toFixed(0)=1e+21
(1e22).toFixed(2)=1e+22
(9.999e20).toFixed(2)=999900000000000000000.00
(-1e21).toFixed(2)=-1e+21
(1e21-1).toFixed(0)=1e+21
--- tiny values ---
(1e-7).toFixed(2)=0.00
(1e-7).toFixed(10)=0.0000001000
(1e-10).toFixed(5)=0.00000
(-1e-7).toFixed(2)=-0.00
(5e-324).toFixed(2)=0.00
(0.000000499).toFixed(6)=0.000000
--- high digit counts ---
(1).toFixed(20)=1.00000000000000000000
(0.1).toFixed(20)=0.10000000000000000555
(1).toFixed(100)=1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
(0.5).toFixed(50)=0.50000000000000000000000000000000000000000000000000
--- argument bounds ---
(1).toFixed(101) threw=true
(1).toFixed(-1) threw=true
--- fractional arg truncates ---
(1.23456).toFixed(2.9)=1.23
(1.23456).toFixed(3.1)=1.235
--- non-finite ---
NaN.toFixed(2)=NaN
Infinity.toFixed(2)=Infinity
(-Infinity).toFixed(0)=-Infinity

Node output:

--- digit sweep on 1.23456789 ---
d0=1
d1=1.2
d2=1.23
d3=1.235
d4=1.2346
d5=1.23457
d6=1.234568
d7=1.2345679
d8=1.23456789
d9=1.234567890
d10=1.2345678900
--- digit sweep on 9.99999 ---
d0=10
d1=10.0
d2=10.00
d3=10.000
d4=10.0000
d5=9.99999
d6=9.999990
d7=9.9999900
d8=9.99999000
--- toFixed(0) ---
(1.5).toFixed(0)=2
(0).toFixed(0)=0
(-0).toFixed(0)=0
(0.4).toFixed(0)=0
(-0.4).toFixed(0)=-0
(-0.6).toFixed(0)=-1
(1e20).toFixed(0)=100000000000000000000
--- undefined arg == 0 ---
(3.7).toFixed()=4
(3.7).toFixed(undefined)=4
--- 1e21 boundary ---
(1e20).toFixed(2)=100000000000000000000.00
(1e21).toFixed(2)=1e+21
(1e21).toFixed(0)=1e+21
(1e22).toFixed(2)=1e+22
(9.999e20).toFixed(2)=999900000000000000000.00
(-1e21).toFixed(2)=-1e+21
(1e21-1).toFixed(0)=1e+21
--- tiny values ---
(1e-7).toFixed(2)=0.00
(1e-7).toFixed(10)=0.0000001000
(1e-10).toFixed(5)=0.00000
(-1e-7).toFixed(2)=-0.00
(5e-324).toFixed(2)=0.00
(0.000000499).toFixed(6)=0.000000
--- high digit counts ---
(1).toFixed(20)=1.00000000000000000000
(0.1).toFixed(20)=0.10000000000000000555
(1).toFixed(100)=1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
(0.5).toFixed(50)=0.50000000000000000000000000000000000000000000000000
--- argument bounds ---
(1).toFixed(101) threw=true
(1).toFixed(-1) threw=true
--- fractional arg truncates ---
(1.23456).toFixed(2.9)=1.23
(1.23456).toFixed(3.1)=1.235
--- non-finite ---
NaN.toFixed(2)=NaN
Infinity.toFixed(2)=Infinity
(-Infinity).toFixed(0)=-Infinity

RTS output:

--- digit sweep on 1.23456789 ---
d0=1
d1=1.2
d2=1.23
d3=1.235
d4=1.2346
d5=1.23457
d6=1.234568
d7=1.2345679
d8=1.23456789
d9=1.234567890
d10=1.2345678900
--- digit sweep on 9.99999 ---
d0=10
d1=10.0
d2=10.00
d3=10.000
d4=10.0000
d5=9.99999
d6=9.999990
d7=9.9999900
d8=9.99999000
--- toFixed(0) ---
(1.5).toFixed(0)=2
(0).toFixed(0)=0
(-0).toFixed(0)=0
(0.4).toFixed(0)=0
(-0.4).toFixed(0)=-0
(-0.6).toFixed(0)=-1
(1e20).toFixed(0)=100000000000000000000
--- undefined arg == 0 ---
(3.7).toFixed()=4
(3.7).toFixed(undefined)=4
--- 1e21 boundary ---
(1e20).toFixed(2)=100000000000000000000.00
(1e21).toFixed(2)=1e+21
(1e21).toFixed(0)=1e+21
(1e22).toFixed(2)=1e+22
(9.999e20).toFixed(2)=999900000000000000000.00
(-1e21).toFixed(2)=-1e+21
(1e21-1).toFixed(0)=1e+21
--- tiny values ---
(1e-7).toFixed(2)=0.00
(1e-7).toFixed(10)=0.0000001000
(1e-10).toFixed(5)=0.00000
(-1e-7).toFixed(2)=-0.00
(5e-324).toFixed(2)=0.00
(0.000000499).toFixed(6)=0.000000
--- high digit counts ---
(1).toFixed(20)=1.00000000000000000000
(0.1).toFixed(20)=0.10000000000000000555
(1).toFixed(100)=1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
(0.5).toFixed(50)=0.50000000000000000000000000000000000000000000000000
--- argument bounds ---
(1).toFixed(101)=1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
(1).toFixed(-1)=1
--- fractional arg truncates ---
(1.23456).toFixed(2.9)=1.23
(1.23456).toFixed(3.1)=1.235
--- non-finite ---
NaN.toFixed(2)=NaN
Infinity.toFixed(2)=Infinity
(-Infinity).toFixed(0)=-Infinity
claude-toprecision-edges — rts_diverge

Bun output:

(0).toPrecision(1)=0
(1).toPrecision(1)=1
(9).toPrecision(1)=9
(9.5).toPrecision(1)=1e+1
(9.99).toPrecision(1)=1e+1
(99).toPrecision(1)=1e+2
(123.456).toPrecision(1)=1e+2
(0.5).toPrecision(1)=0.5
(0.05).toPrecision(1)=0.05
(1234).toPrecision(1)=1e+3
(-9.99).toPrecision(1)=-1e+1
--- flip to exponential (e >= p) ---
(100).toPrecision(1)=1e+2
(100).toPrecision(2)=1.0e+2
(100).toPrecision(3)=100
(100).toPrecision(4)=100.0
(999).toPrecision(2)=1.0e+3
(999).toPrecision(3)=999
(1000).toPrecision(3)=1.00e+3
(1000).toPrecision(4)=1000
(1234.5).toPrecision(2)=1.2e+3
(1234.5).toPrecision(5)=1234.5
(1234.5).toPrecision(6)=1234.50
--- flip to exponential (e < -6) ---
(0.000001).toPrecision(1)=0.000001
(0.0000001).toPrecision(1)=1e-7
(0.000001).toPrecision(3)=0.00000100
(0.0000001).toPrecision(3)=1.00e-7
(0.00000123).toPrecision(2)=0.0000012
(0.0000123).toPrecision(2)=0.000012
--- rounding carry changes exponent ---
(9.99).toPrecision(2)=10
(99.9).toPrecision(2)=1.0e+2
(0.0999).toPrecision(2)=0.10
(9999).toPrecision(3)=1.00e+4
(0.00009999).toPrecision(2)=0.00010
--- undefined precision == toString ---
(123.456).toPrecision()=123.456
(0.1).toPrecision()=0.1
(1e21).toPrecision()=1e+21
(1e-7).toPrecision()=1e-7
(123.456).toPrecision(undefined)=123.456
--- argument bounds ---
(1).toPrecision(21)=1.00000000000000000000
(0.1).toPrecision(21)=0.100000000000000005551
(1).toPrecision(0) threw=true
(1).toPrecision(22)=1.000000000000000000000
(1).toPrecision(-1) threw=true
--- non-finite ignores precision ---
NaN.toPrecision(3)=NaN
Infinity.toPrecision(3)=Infinity
(-Infinity).toPrecision(1)=-Infinity
--- fractional precision truncates ---
(123.456).toPrecision(2.9)=1.2e+2
(123.456).toPrecision(4.1)=123.5

Node output:

(0).toPrecision(1)=0
(1).toPrecision(1)=1
(9).toPrecision(1)=9
(9.5).toPrecision(1)=1e+1
(9.99).toPrecision(1)=1e+1
(99).toPrecision(1)=1e+2
(123.456).toPrecision(1)=1e+2
(0.5).toPrecision(1)=0.5
(0.05).toPrecision(1)=0.05
(1234).toPrecision(1)=1e+3
(-9.99).toPrecision(1)=-1e+1
--- flip to exponential (e >= p) ---
(100).toPrecision(1)=1e+2
(100).toPrecision(2)=1.0e+2
(100).toPrecision(3)=100
(100).toPrecision(4)=100.0
(999).toPrecision(2)=1.0e+3
(999).toPrecision(3)=999
(1000).toPrecision(3)=1.00e+3
(1000).toPrecision(4)=1000
(1234.5).toPrecision(2)=1.2e+3
(1234.5).toPrecision(5)=1234.5
(1234.5).toPrecision(6)=1234.50
--- flip to exponential (e < -6) ---
(0.000001).toPrecision(1)=0.000001
(0.0000001).toPrecision(1)=1e-7
(0.000001).toPrecision(3)=0.00000100
(0.0000001).toPrecision(3)=1.00e-7
(0.00000123).toPrecision(2)=0.0000012
(0.0000123).toPrecision(2)=0.000012
--- rounding carry changes exponent ---
(9.99).toPrecision(2)=10
(99.9).toPrecision(2)=1.0e+2
(0.0999).toPrecision(2)=0.10
(9999).toPrecision(3)=1.00e+4
(0.00009999).toPrecision(2)=0.00010
--- undefined precision == toString ---
(123.456).toPrecision()=123.456
(0.1).toPrecision()=0.1
(1e21).toPrecision()=1e+21
(1e-7).toPrecision()=1e-7
(123.456).toPrecision(undefined)=123.456
--- argument bounds ---
(1).toPrecision(21)=1.00000000000000000000
(0.1).toPrecision(21)=0.100000000000000005551
(1).toPrecision(0) threw=true
(1).toPrecision(22)=1.000000000000000000000
(1).toPrecision(-1) threw=true
--- non-finite ignores precision ---
NaN.toPrecision(3)=NaN
Infinity.toPrecision(3)=Infinity
(-Infinity).toPrecision(1)=-Infinity
--- fractional precision truncates ---
(123.456).toPrecision(2.9)=1.2e+2
(123.456).toPrecision(4.1)=123.5

RTS output:

(0).toPrecision(1)=0
(1).toPrecision(1)=1
(9).toPrecision(1)=9
(9.5).toPrecision(1)=1e+1
(9.99).toPrecision(1)=1e+1
(99).toPrecision(1)=1e+2
(123.456).toPrecision(1)=1e+2
(0.5).toPrecision(1)=0.5
(0.05).toPrecision(1)=0.05
(1234).toPrecision(1)=1e+3
(-9.99).toPrecision(1)=-1e+1
--- flip to exponential (e >= p) ---
(100).toPrecision(1)=1e+2
(100).toPrecision(2)=1.0e+2
(100).toPrecision(3)=100
(100).toPrecision(4)=100.0
(999).toPrecision(2)=1.0e+3
(999).toPrecision(3)=999
(1000).toPrecision(3)=1.00e+3
(1000).toPrecision(4)=1000
(1234.5).toPrecision(2)=1.2e+3
(1234.5).toPrecision(5)=1234.5
(1234.5).toPrecision(6)=1234.50
--- flip to exponential (e < -6) ---
(0.000001).toPrecision(1)=0.000001
(0.0000001).toPrecision(1)=1e-7
(0.000001).toPrecision(3)=0.00000100
(0.0000001).toPrecision(3)=1.00e-7
(0.00000123).toPrecision(2)=0.0000012
(0.0000123).toPrecision(2)=0.000012
--- rounding carry changes exponent ---
(9.99).toPrecision(2)=10
(99.9).toPrecision(2)=1.0e+2
(0.0999).toPrecision(2)=0.100
(9999).toPrecision(3)=1.00e+4
(0.00009999).toPrecision(2)=0.000100
--- undefined precision == toString ---
(123.456).toPrecision()=123.456
(0.1).toPrecision()=0.1
(1e21).toPrecision()=1000000000000000000000
(1e-7).toPrecision()=0.0000001
(123.456).toPrecision(undefined)=123.456
--- argument bounds ---
(1).toPrecision(21)=1.00000000000000000000
(0.1).toPrecision(21)=0.100000000000000005551
(1).toPrecision(0)=1
(1).toPrecision(22)=1.000000000000000000000
(1).toPrecision(-1)=1
--- non-finite ignores precision ---
NaN.toPrecision(3)=NaN
Infinity.toPrecision(3)=inf
(-Infinity).toPrecision(1)=-inf
--- fractional precision truncates ---
(123.456).toPrecision(2.9)=1.2e+2
(123.456).toPrecision(4.1)=123.5
claude-tostring-radix-fractional — rts_diverge

Bun output:

0.5_b2=0.1
0.25_b2=0.01
0.75_b2=0.11
0.125_b2=0.001
0.375_b2=0.011
0.0625_b2=0.0001
2.5_b2=10.1
10.625_b2=1010.101
255.5_b2=11111111.1
1.5_b2=1.1
3.75_b2=11.11
0.5_b8=0.4
0.25_b8=0.2
0.125_b8=0.1
0.0625_b8=0.04
255.5_b8=377.4
10.625_b8=12.5
1.75_b8=1.6
0.5_b16=0.8
0.25_b16=0.4
0.0625_b16=0.1
0.125_b16=0.2
255.5_b16=ff.8
10.625_b16=a.a
4095.9375_b16=fff.f
0.5_b4=0.2
0.75_b4=0.3
0.5_b32=0.g
0.03125_b32=0.1
neg0.5_b2=-0.1
neg0.75_b2=-0.11
neg10.625_b16=-a.a
neg255.5_b8=-377.4
neg2.5_b2=-10.1
1e21_b2=1101100011010111001001101011011100010111011110101000000000000000000000
1e21_b16=3635c9adc5dea00000
2pow53_b2=100000000000000000000000000000000000000000000000000000
2pow53_b16=20000000000000
maxsafe_b36=2gosa7pa2gv
zero_b2=0
negzero_b2=0
zero_b36=0
nan_b2=NaN
nan_b36=NaN
inf_b2=Infinity
neginf_b36=-Infinity
--- radix bounds ---
radix2_ok=101
radix36_ok=z
radix1 threw=true
radix37 threw=true
radix0 threw=true

Node output:

0.5_b2=0.1
0.25_b2=0.01
0.75_b2=0.11
0.125_b2=0.001
0.375_b2=0.011
0.0625_b2=0.0001
2.5_b2=10.1
10.625_b2=1010.101
255.5_b2=11111111.1
1.5_b2=1.1
3.75_b2=11.11
0.5_b8=0.4
0.25_b8=0.2
0.125_b8=0.1
0.0625_b8=0.04
255.5_b8=377.4
10.625_b8=12.5
1.75_b8=1.6
0.5_b16=0.8
0.25_b16=0.4
0.0625_b16=0.1
0.125_b16=0.2
255.5_b16=ff.8
10.625_b16=a.a
4095.9375_b16=fff.f
0.5_b4=0.2
0.75_b4=0.3
0.5_b32=0.g
0.03125_b32=0.1
neg0.5_b2=-0.1
neg0.75_b2=-0.11
neg10.625_b16=-a.a
neg255.5_b8=-377.4
neg2.5_b2=-10.1
1e21_b2=1101100011010111001001101011011100010111011110101000000000000000000000
1e21_b16=3635c9adc5dea00000
2pow53_b2=100000000000000000000000000000000000000000000000000000
2pow53_b16=20000000000000
maxsafe_b36=2gosa7pa2gv
zero_b2=0
negzero_b2=0
zero_b36=0
nan_b2=NaN
nan_b36=NaN
inf_b2=Infinity
neginf_b36=-Infinity
--- radix bounds ---
radix2_ok=101
radix36_ok=z
radix1 threw=true
radix37 threw=true
radix0 threw=true

RTS output:

0.5_b2=0.5
0.25_b2=0.25
0.75_b2=0.75
0.125_b2=0.125
0.375_b2=0.375
0.0625_b2=0.0625
2.5_b2=2.5
10.625_b2=10.625
255.5_b2=255.5
1.5_b2=1.5
3.75_b2=3.75
0.5_b8=0.5
0.25_b8=0.25
0.125_b8=0.125
0.0625_b8=0.0625
255.5_b8=255.5
10.625_b8=10.625
1.75_b8=1.75
0.5_b16=3fe0000000000000
0.25_b16=3fd0000000000000
0.0625_b16=3fb0000000000000
0.125_b16=3fc0000000000000
255.5_b16=406ff00000000000
10.625_b16=4025400000000000
4095.9375_b16=40afffe000000000
0.5_b4=0.5
0.75_b4=0.75
0.5_b32=0.5
0.03125_b32=0.03125
neg0.5_b2=-0.5
neg0.75_b2=-0.75
neg10.625_b16=c025400000000000
neg255.5_b8=-255.5
neg2.5_b2=-2.5
1e21_b2=111111111111111111111111111111111111111111111111111111111111111
1e21_b16=7fffffffffffffff
2pow53_b2=100000000000000000000000000000000000000000000000000000
2pow53_b16=20000000000000
maxsafe_b36=2gosa7pa2gv
zero_b2=0
negzero_b2=0
zero_b36=0
nan_b2=NaN
nan_b36=NaN
inf_b2=Infinity
neginf_b36=-Infinity
--- radix bounds ---
radix2_ok=101
radix36_ok=z
radix1=101
radix37=5
radix0=101
codex_date_toprimitive_addition — rts_diverge

Bun output:

string
true
0
true

Node output:

string
true
0
true

RTS output:

number
undefined
0
true
codex_numeric_relational_coercion — rts_diverge

Bun output:

true
false
true
false
true
true
true
false

Node output:

true
false
true
false
true
true
true
false

RTS output:

true
false
true
false
true
true
true
true
210_object_tostring — rts_error

Bun output:

obj=[object Object]
arr=[object Array]
num=[object Number]
str=[object String]
bool=[object Boolean]
null=[object Null]
undef=[object Undefined]
func=[object Function]
date=[object Date]
regex=[object RegExp]
map=[object Map]
set=[object Set]

Node output:

obj=[object Object]
arr=[object Array]
num=[object Number]
str=[object String]
bool=[object Boolean]
null=[object Null]
undef=[object Undefined]
func=[object Function]
date=[object Date]
regex=[object RegExp]
map=[object Map]
set=[object Set]

RTS output:


253_object_keys_empty — rts_diverge

Bun output:

empty=
arr=0,1,2
str=0,1
num=

Node output:

empty=
arr=0,1,2
str=0,1
num=

RTS output:

empty=
arr=0,1,2
str=
num=
336_prototype_chain — rts_diverge

Bun output:

Rex speaks
Rex barks
true
true
true
true
false
true
true

Node output:

Rex speaks
Rex barks
true
true
true
true
false
true
true

RTS output:

Rex speaks
Rex barks
true
true
false
true
false
true
true
354_obf_proxy_trap — rts_diverge

Bun output:

255
test
5
20
add(2,3)|mul(4,5)

Node output:

255
test
5
20
add(2,3)|mul(4,5)

RTS output:

255
test
NaN
NaN
add(undefined)|mul(undefined)
359_obf_getter_smuggle — rts_diverge

Bun output:

0
abcde
function
function
42
1
undefined
2
function _fn() { [obfuscated] }
42

Node output:

0
abcde
function
function
42
1
undefined
2
function _fn() { [obfuscated] }
42

RTS output:

5
abcde
undefined
undefined
42
1
undefined
2
function _fn() { [native code] }
42
368_iterator_protocol — rts_error

Bun output:

1,2,3,4,5
10,11,12,13
1a
2b
3c
1,2,3,4,5
1,2,3,4
4
first
caught:oops
1
99
true

Node output:

1,2,3,4,5
10,11,12,13
1a
2b
3c
1,2,3,4,5
1,2,3,4
4
first
caught:oops
1
99
true

RTS output:

1,2,3,4,5
10,11,12,13
382_field_init_order — rts_error

Bun output:

Base.x,Base.y,Base.constructor,Child.z,Child.constructor,Child.z.reassign
a-field,c-field,constructor-start,b-constructor,constructor-end
S.a,S.b,S.block,S.c
P.pv,C.cv
10 20 10

Node output:

Base.x,Base.y,Base.constructor,Child.z,Child.constructor,Child.z.reassign
a-field,c-field,constructor-start,b-constructor,constructor-end
S.a,S.b,S.block,S.c
P.pv,C.cv
10 20 10

RTS output:


387_object_create_descriptors — rts_error

Bun output:

Rex breathes
Rex
Lab
name,breed
true
false
a,b
hello from base1
hello from base2
C->B->A->Object
red shape
79
true
true

Node output:

Rex breathes
Rex
Lab
name,breed
true
false
a,b
hello from base1
hello from base2
C->B->A->Object
red shape
79
true
true

RTS output:


388_globalThis — rts_error

Bun output:

object
true
object
object
function
function
function
function
function
object
function
function
function
function
function
function
function
1.0
true
1.0
true
true
true

Node output:

object
true
object
object
function
function
function
function
function
object
function
function
function
function
function
function
function
1.0
true
1.0
true
true
true

RTS output:

object
true
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
1.0
true
1.0
389_proto_accessor — rts_error

Bun output:

hi from child
true
hello
world
true
2
null
false
null
true
1
2
2
0

Node output:

hi from child
true
hello
world
true
2
null
false
null
true
1
2
2
0

RTS output:


408_object_spread_getter_order — rts_diverge

Bun output:

{"z":0,"a":3,"b":5,"c":4}
z,a,b,c
get-a

Node output:

{"z":0,"a":3,"b":5,"c":4}
z,a,b,c
get-a

RTS output:

{"z":0,"b":5,"a":3,"hidden":9,"c":4}
z,b,a,hidden,c
get-a,hidden,get-a,hidden
98_proxy_invariants — rts_diverge

Bun output:

keys=a,c
vals={"a":1,"c":3}
log=ownKeys|desc:a|desc:b|def:c=3|del:b|ownKeys|desc:a|desc:c|ownKeys|desc:a|desc:c

Node output:

keys=a,c
vals={"a":1,"c":3}
log=ownKeys|desc:a|desc:b|def:c=3|del:b|ownKeys|desc:a|desc:c|ownKeys|desc:a|desc:c

RTS output:

keys=a
vals={"a":1}
log=ownKeys|desc:a|desc:b|def:c=undefined|del:b|ownKeys|desc:a|desc:c|ownKeys|desc:a|desc:c
claude-json-tojson-hook — rts_diverge

Bun output:

{"wrapped":42,"tag":"custom"}
{"nested":{"wrapped":42,"tag":"custom"},"plain":1}
[{"wrapped":42,"tag":"custom"},{"wrapped":42,"tag":"custom"}]
{"when":"1970-01-01T00:00:00.000Z"}
7
{"a":"ARR"}

Node output:

{"wrapped":42,"tag":"custom"}
{"nested":{"wrapped":42,"tag":"custom"},"plain":1}
[{"wrapped":42,"tag":"custom"},{"wrapped":42,"tag":"custom"}]
{"when":"1970-01-01T00:00:00.000Z"}
7
{"a":"ARR"}

RTS output:

{"wrapped":42,"tag":"custom"}
{"nested":{"wrapped":42,"tag":"custom"},"plain":1}
[{"wrapped":42,"tag":"custom"},{"wrapped":42,"tag":"custom"}]
{"when":"1970-01-01T00:00:00.000Z"}
{}
7
claude-spread-getter-to-data — rts_diverge

Bun output:

1
2
2
true
1
true true true

Node output:

1
2
2
true
1
true true true

RTS output:

1
2
4
true
1
true true true
claude-spread-override-order — rts_diverge

Bun output:

{"x":1,"y":3,"z":4}
x,y,z
first,p,q,last
p,q
{"a":1}
{"0":"a","1":"b"}

Node output:

{"x":1,"y":3,"z":4}
x,y,z
first,p,q,last
p,q
{"a":1}
{"0":"a","1":"b"}

RTS output:

{"x":1,"y":3,"z":4}
x,y,z
first,p,q,last
p,q,p,q
{"a":1}
{}
codex_freeze_typedarray_error — rts_diverge

Bun output:

true
TypeError
1

Node output:

true
TypeError
1

RTS output:

true
1
codex_getownpropertydescriptor_array_length — rts_diverge

Bun output:

3:true:false:false
false
TypeError
1,2,3

Node output:

3:true:false:false
false
TypeError
1,2,3

RTS output:

undefined:undefined:undefined:undefined
undefined
1,2,3
codex_object_define_accessor_delete — rts_diverge

Bun output:

10:10:x
true
9:10:x

Node output:

10:10:x
true
9:10:x

RTS output:

10:10:x
true
18:18:x
codex_ownkeys_order_symbols — rts_diverge

Bun output:

1,2,b,a,c,Symbol(s1),Symbol(s2)
1,2,b,a,c
Symbol(s1),Symbol(s2)

Node output:

1,2,b,a,c,Symbol(s1),Symbol(s2)
1,2,b,a,c
Symbol(s1),Symbol(s2)

RTS output:

1,2,b,a,c
1,2,b,a,c
[object Object],[object Object]
codex_proxy_construct_apply_newtarget — rts_error

Bun output:

13
5:proxy:true:true

Node output:

13
5:proxy:true:true

RTS output:


codex_proxy_getprototypeof_invariant — rts_diverge

Bun output:

TypeError
true

Node output:

TypeError
true

RTS output:

true
codex_proxy_revocable_edges — rts_error

Bun output:

1
get:TypeError
keys:TypeError

Node output:

1
get:TypeError
keys:TypeError

RTS output:


codex_reflect_set_prototype_cycle — rts_diverge

Bun output:

true
true
false
false

Node output:

true
true
false
false

RTS output:

true
true
true
true
361_functional_compose — rts_diverge

Bun output:

val:49
val:49
21
30
7
-7
4,16,36

Node output:

val:49
val:49
21
30
7
-7
4,16,36

RTS output:

3
val:49
21
30
7
-7
4,16,36
codex_reactive_dependency_tracker — rts_error

Bun output:

sum=3|sum=7|sum=12

Node output:

sum=3|sum=7|sum=12

RTS output:


116_promise_finally — rts_diverge

Bun output:

log=then:42,catch:error,finally1,finally2,then2:84

Node output:

log=then:42,catch:error,finally1,finally2,then2:84

RTS output:

log=then:4631107791820423000,catch:error,finally1,finally2,then2:9223372036854776000
167_promise_race_any — rts_diverge

Bun output:

race=1
any=1
race2=4
any2=4

Node output:

race=1
any=1
race2=4
any2=4

RTS output:

race=4607182418800017400
any=4607182418800017400
race2=4616189618054758000
any2=4616189618054758000
304_promise_try — rts_error

Bun output:

ok=5
err=boom

Node output:

ok=5
err=boom

RTS output:


365_async_patterns — rts_diverge

Bun output:

6
60
fulfilled:ok|rejected:fail|fulfilled:also ok
caught:bad input
success
3
1,2,3,4,5
fast

Node output:

6
60
fulfilled:ok|rejected:fail|fulfilled:also ok
caught:bad input
success
3
1,2,3,4,5
fast

RTS output:

6
60
fulfilled:ok|rejected:fail|fulfilled:also ok
42_promise_deep — rts_diverge

Bun output:

one=3
two=5
all=a,b
async=9

Node output:

one=3
two=5
all=a,b
async=9

RTS output:

one=3
two=4
all=1.390671161569965e-309,1.39067116156997e-309
async=9
codex_promise_all_order_thenables — rts_error

Bun output:

slow,fast,then
slow-start|thenable|slow-end

Node output:

slow,fast,then
slow-start|thenable|slow-end

RTS output:


codex_promise_any_rejection_order — rts_diverge

Bun output:

AggregateError
a,b,c

Node output:

AggregateError
a,b,c

RTS output:

undefined
codex_promise_finally_thenable — rts_diverge

Bun output:

finally|thenable|value

Node output:

finally|thenable|value

RTS output:

finally|value
171_regexp_lastindex — rts_diverge

Bun output:

lastIndex_init=0
match1=1
lastIndex1=2
match2=2
lastIndex2=4
match3=3
lastIndex3=6
match4=null
lastIndex4=0

Node output:

lastIndex_init=0
match1=1
lastIndex1=2
match2=2
lastIndex2=4
match3=3
lastIndex3=6
match4=null
lastIndex4=0

RTS output:

lastIndex_init=0
match1=1
lastIndex1=0
match2=1
lastIndex2=0
match3=1
lastIndex3=0
match4=[object Object]
lastIndex4=0
366_regex_advanced — rts_diverge

Bun output:

2026
05
22
22/05/2026
$10,$20,$40
foo,food
cat=5
dog=3
bird=8
123
7
hello ? world
a|1|b|2|c|3|
Hello World Foo

Node output:

2026
05
22
22/05/2026
$10,$20,$40
foo,food
cat=5
dog=3
bird=8
123
7
hello ? world
a|1|b|2|c|3|
Hello World Foo

RTS output:

2026
05
22
22/05/2026
$10,$20,$40
foo,food
cat=5
dog=3
bird=8
123
0
hello ? world
a|1|b|2|c|3|
Hello World Foo
39_regex_deep — rts_diverge

Bun output:

test=true
match0=Item-42
match1=42
replace=unit-42 and unit-99
replaceAll=a/b/c
split=x,y,z,
g1=42
last1=7
g2=99
last2=19
flag_m=true
flag_s=true

Node output:

test=true
match0=Item-42
match1=42
replace=unit-42 and unit-99
replaceAll=a/b/c
split=x,y,z,
g1=42
last1=7
g2=99
last2=19
flag_m=true
flag_s=true

RTS output:

test=true
match0=Item-42
match1=42
replace=unit-42 and unit-99
replaceAll=a/b/c
split=x,y,z,
g1=42
last1=0
g2=42
last2=0
flag_m=true
flag_s=true
404_regexp_replace_named_callback — rts_diverge

Bun output:

RED@0=11 BLUE@7=21
[a]ab[a]a

Node output:

RED@0=11 BLUE@7=21
[a]ab[a]a

RTS output:

undefined@red=NaN undefined@blue=NaN
[a]ab[a]a
70_regex_indices — rts_diverge

Bun output:

indices=[[1,4],[2,3],[3,4]]

Node output:

indices=[[1,4],[2,3],[3,4]]

RTS output:

indices={"0":[1,4],"1":[2,3],"2":[3,4],"length":3}
codex_regex_sticky_lastindex_unicode — rts_diverge

Bun output:

true:3
true:5
false:0
abc:5

Node output:

true:3
true:5
false:0
abc:5

RTS output:

true:0
true:0
true:0
abc:0
101_textdecoder_stream — rts_diverge

Bun output:

out=caf|é

Node output:

out=caf|é

RTS output:

out=
64_readable_stream — rts_error

Bun output:

out=a,b

Node output:

out=a,b

RTS output:


86_blob_stream — rts_error

Bun output:

bytes=97,98

Node output:

bytes=97,98

RTS output:


88_compression_stream — rts_error

Bun output:

gzip=28

Node output:

gzip=28

RTS output:


96_streams_transform — rts_diverge

Bun output:

out=AB,CD

Node output:

out=AB,CD

RTS output:

out=
91_string_wellformed — rts_diverge

Bun output:

wf=false
fix=�

Node output:

wf=false
fix=�

RTS output:

wf=true
fix=�
claude-at-negative-index — rts_diverge

Bun output:

h
o
l
o
undefined
h
undefined
undefined
h
a
b
d83d
1
undefined

Node output:

h
o
l
o
undefined
h
undefined
undefined
h
a
b
d83d
1
undefined

RTS output:

h
o
l
o
undefined
h
undefined
undefined
h
a
b
d83d
2
undefined
claude-at-vs-charat-vs-bracket — rts_diverge

Bun output:

i=0 at=h charAt=[h] bracket=h
i=4 at=o charAt=[o] bracket=o
i=5 at=undefined charAt=[] bracket=undefined
i=99 at=undefined charAt=[] bracket=undefined
i=-1 at=o charAt=[] bracket=undefined
i=-5 at=h charAt=[] bracket=undefined
i=-6 at=undefined charAt=[] bracket=undefined
i=-0 at=h charAt=[h] bracket=h
i=1.5 at=e charAt=[e] bracket=undefined
i=0.9 at=h charAt=[h] bracket=undefined
i=-1.5 at=o charAt=[] bracket=undefined
i=4.99 at=o charAt=[o] bracket=undefined
i=undefined at=h charAt=[h] bracket=undefined
i=null at=h charAt=[h] bracket=undefined
i=NaN at=h charAt=[h] bracket=undefined
i=true at=e charAt=[e] bracket=undefined
i=false at=h charAt=[h] bracket=undefined
i='2' at=l charAt=[l] bracket=l
i='' at=h charAt=[h] bracket=undefined
i=Infinity at=undefined charAt=[] bracket=undefined
i=-Infinity at=undefined charAt=[] bracket=undefined
bracket-'1'=e
bracket-'01'=undefined
bracket-'1.0'=undefined
bracket-' 1'=undefined
bracket-'-0'=undefined
bracket-length=5
charAt-noarg=h
at-noarg=h
0-in=true
5-in=false
empty-at=undefined
empty-charAt=[]
empty-bracket=undefined
emoji-at1=d83d
emoji-charAt1=d83d
emoji-bracket1=d83d

Node output:

i=0 at=h charAt=[h] bracket=h
i=4 at=o charAt=[o] bracket=o
i=5 at=undefined charAt=[] bracket=undefined
i=99 at=undefined charAt=[] bracket=undefined
i=-1 at=o charAt=[] bracket=undefined
i=-5 at=h charAt=[] bracket=undefined
i=-6 at=undefined charAt=[] bracket=undefined
i=-0 at=h charAt=[h] bracket=h
i=1.5 at=e charAt=[e] bracket=undefined
i=0.9 at=h charAt=[h] bracket=undefined
i=-1.5 at=o charAt=[] bracket=undefined
i=4.99 at=o charAt=[o] bracket=undefined
i=undefined at=h charAt=[h] bracket=undefined
i=null at=h charAt=[h] bracket=undefined
i=NaN at=h charAt=[h] bracket=undefined
i=true at=e charAt=[e] bracket=undefined
i=false at=h charAt=[h] bracket=undefined
i='2' at=l charAt=[l] bracket=l
i='' at=h charAt=[h] bracket=undefined
i=Infinity at=undefined charAt=[] bracket=undefined
i=-Infinity at=undefined charAt=[] bracket=undefined
bracket-'1'=e
bracket-'01'=undefined
bracket-'1.0'=undefined
bracket-' 1'=undefined
bracket-'-0'=undefined
bracket-length=5
charAt-noarg=h
at-noarg=h
0-in=true
5-in=false
empty-at=undefined
empty-charAt=[]
empty-bracket=undefined
emoji-at1=d83d
emoji-charAt1=d83d
emoji-bracket1=d83d

RTS output:

i=0 at=h charAt=[h] bracket=h
i=4 at=o charAt=[o] bracket=o
i=5 at=undefined charAt=[] bracket=undefined
i=99 at=undefined charAt=[] bracket=undefined
i=-1 at=o charAt=[] bracket=undefined
i=-5 at=h charAt=[] bracket=undefined
i=-6 at=undefined charAt=[] bracket=undefined
i=-0 at=h charAt=[h] bracket=h
i=1.5 at=e charAt=[e] bracket=undefined
i=0.9 at=h charAt=[h] bracket=undefined
i=-1.5 at=o charAt=[] bracket=undefined
i=4.99 at=o charAt=[o] bracket=undefined
i=undefined at=h charAt=[h] bracket=undefined
i=null at=h charAt=[h] bracket=undefined
i=NaN at=h charAt=[h] bracket=undefined
i=true at=e charAt=[e] bracket=undefined
i=false at=h charAt=[h] bracket=undefined
i='2' at=l charAt=[l] bracket=l
i='' at=h charAt=[h] bracket=undefined
i=Infinity at=h charAt=[h] bracket=undefined
i=-Infinity at=h charAt=[h] bracket=undefined
bracket-'1'=e
bracket-'01'=undefined
bracket-'1.0'=undefined
bracket-' 1'=undefined
bracket-'-0'=undefined
bracket-length=5
charAt-noarg=h
at-noarg=h
0-in=true
5-in=false
empty-at=undefined
empty-charAt=[]
empty-bracket=undefined
emoji-at1=d83d
emoji-charAt1=fffd
emoji-bracket1=fffd
claude-concat-many-args — rts_error

Bun output:

zero=[x]
one=xa
two=xab
five=xabcde
ten=0123456789
apply64-len=64
apply64-head=012345678901
apply64-tail=0123
spread=pqr
spread-empty-len=0
empties=[]
empties-len=0
interleaved=abc
int=n=42
zero-num=n=0
neg-zero=n=0
float=n=1.5
exp=n=1e+21
tiny=n=1e-7
nan=n=NaN
inf=n=Infinity,-Infinity
bools=b=true,false
null=v=null
undefined=v=undefined
null-undef=null|undefined
arr=a=1,2,3
arr-empty=[]
arr-nested=1,2,3
arr-holes=,,1
obj=[object Object]
custom-tostring=CUSTOM
tostring-wins=STR
mixed=a1truenullundefined2
no-mutate=keep
no-mutate-len=4
eq-plus=true
call-num=5!
call-bool=true!
halves-len=2
halves-cp=1f600

Node output:

zero=[x]
one=xa
two=xab
five=xabcde
ten=0123456789
apply64-len=64
apply64-head=012345678901
apply64-tail=0123
spread=pqr
spread-empty-len=0
empties=[]
empties-len=0
interleaved=abc
int=n=42
zero-num=n=0
neg-zero=n=0
float=n=1.5
exp=n=1e+21
tiny=n=1e-7
nan=n=NaN
inf=n=Infinity,-Infinity
bools=b=true,false
null=v=null
undefined=v=undefined
null-undef=null|undefined
arr=a=1,2,3
arr-empty=[]
arr-nested=1,2,3
arr-holes=,,1
obj=[object Object]
custom-tostring=CUSTOM
tostring-wins=STR
mixed=a1truenullundefined2
no-mutate=keep
no-mutate-len=4
eq-plus=true
call-num=5!
call-bool=true!
halves-len=2
halves-cp=1f600

RTS output:


claude-fromcharcode-as-value — rts_error

Bun output:

direct=A
direct-multi=HI
typeof=function
name=fromCharCode
length=1
alias=B
alias-multi=CDE
alias-none=[]
let-alias=F
obj-prop=G
arr-elem=H
map=IJK
map-direct=L|M�|N�
passed=O
passed-alias=P
returned=Q
closure=R
call=S
apply=TU
bind=V
bind-partial=WX
identity=true
obj-identity=true
spread=YZ
alias-spread=YZ
fcp-direct=a
fcp-alias=b
fcp-alias-astral-len=2

Node output:

direct=A
direct-multi=HI
typeof=function
name=fromCharCode
length=1
alias=B
alias-multi=CDE
alias-none=[]
let-alias=F
obj-prop=G
arr-elem=H
map=IJK
map-direct=L|M�|N�
passed=O
passed-alias=P
returned=Q
closure=R
call=S
apply=TU
bind=V
bind-partial=WX
identity=true
obj-identity=true
spread=YZ
alias-spread=YZ
fcp-direct=a
fcp-alias=b
fcp-alias-astral-len=2

RTS output:

direct=A
direct-multi=HI
claude-lone-surrogate-iteration — rts_diverge

Bun output:

3
3
[97,55357,98]
1 55357
1 128512
2 2
true
true

Node output:

3
3
[97,55357,98]
1 55357
1 128512
2 2
true
true

RTS output:

3
3
[97,65533,98]
1 65533
1 128512
2 2
true
true
claude-padstart-unicode — rts_diverge

Bun output:

[005]
[**café]
[ababx]
[ab12121]
[abc]
[yoy]
2 3
[-🎉]
4
d83d dc9a d83d 120
5
d83d dd25

Node output:

[005]
[**café]
[ababx]
[ab12121]
[abc]
[yoy]
2 3
[-🎉]
4
d83d dc9a d83d 120
5
d83d dd25

RTS output:

[005]
[**café]
[ababx]
[ab12121]
[abc]
[yoy]
2 4
[--🎉]
7
d83d dc9a d83d 56474
9
d83d dd25
claude-replace-string-pattern-dollar — rts_diverge

Bun output:

first=a-bXcX
first-word=dog cat cat
no-match=abc
empty-pattern=-abc
empty-repl=abX
whole=Z
amp=he[ll]o
amp-twice=hellllo
amp-empty-pat=[]abc
prefix=ab[ab]ef
prefix-at-start=[]cdef
suffix=ab[ef]ef
suffix-at-end=abcd[]
dollar=$
dollar-amount=$100
dollar-then-amp=$xy
group1-literal=a$1c
group0-literal=a$0c
named-literal=a$<n>c
lone-dollar=a$c
dollar-x=a$xc
trailing-dollar=az$c
combo=ab<ab|cd|ef>ef
combo2=121234545
num-repl=a42c
num-pattern=a-b1
fn=abc@1/6abc
fn-empty=[0@0]abc
fn-no-expand=a$&c

Node output:

first=a-bXcX
first-word=dog cat cat
no-match=abc
empty-pattern=-abc
empty-repl=abX
whole=Z
amp=he[ll]o
amp-twice=hellllo
amp-empty-pat=[]abc
prefix=ab[ab]ef
prefix-at-start=[]cdef
suffix=ab[ef]ef
suffix-at-end=abcd[]
dollar=$
dollar-amount=$100
dollar-then-amp=$xy
group1-literal=a$1c
group0-literal=a$0c
named-literal=a$<n>c
lone-dollar=a$c
dollar-x=a$xc
trailing-dollar=az$c
combo=ab<ab|cd|ef>ef
combo2=121234545
num-repl=a42c
num-pattern=a-b1
fn=abc@1/6abc
fn-empty=[0@0]abc
fn-no-expand=a$&c

RTS output:

first=a-bXcX
first-word=dog cat cat
no-match=abc
empty-pattern=-abc
empty-repl=abX
whole=Z
amp=he[$&]o
amp-twice=he$&$&o
amp-empty-pat=[$&]abc
prefix=ab[$`]ef
prefix-at-start=[$`]cdef
suffix=ab[$']ef
suffix-at-end=abcd[$']
dollar=$$
dollar-amount=$$100
dollar-then-amp=$$$&y
group1-literal=a$1c
group0-literal=a$0c
named-literal=a$<n>c
lone-dollar=a$c
dollar-x=a$xc
trailing-dollar=az$c
combo=ab<$`|$&|$'>ef
combo2=12$`$&$'45
num-repl=a42c
num-pattern=a-b1
fn=afunctionabc
fn-empty=functionabc
fn-no-expand=afunctionc
claude-split-empty-separator-units — rts_diverge

Bun output:

split-len=4
spread-len=3
str-len=4
units=61,d83d,de00,62
piece-lens=1,1,1,1
rejoin-eq=true
half-hi-isLone=true
half-lo-isLone=true
half-hi-cp=d83d
full-cp=1f600
spread-lens=1,2,1
spread-cps=61,1f600,62
two-split-len=4
two-spread-len=2
ffff-split=1
10000-split=2
combining-split=2
combining-spread=2
empty-split-len=0
ascii-split=a|b|c
limit=61,d83d,de00
limit0-len=0

Node output:

split-len=4
spread-len=3
str-len=4
units=61,d83d,de00,62
piece-lens=1,1,1,1
rejoin-eq=true
half-hi-isLone=true
half-lo-isLone=true
half-hi-cp=d83d
full-cp=1f600
spread-lens=1,2,1
spread-cps=61,1f600,62
two-split-len=4
two-spread-len=2
ffff-split=1
10000-split=2
combining-split=2
combining-spread=2
empty-split-len=0
ascii-split=a|b|c
limit=61,d83d,de00
limit0-len=0

RTS output:

split-len=3
spread-len=3
str-len=4
units=61,d83d,62
piece-lens=1,2,1
rejoin-eq=true
half-hi-isLone=true
half-lo-isLone=false
half-hi-cp=1f600
full-cp=1f600
spread-lens=1,2,1
spread-cps=61,1f600,62
two-split-len=2
two-spread-len=2
ffff-split=1
10000-split=1
combining-split=2
combining-spread=2
empty-split-len=0
ascii-split=a|b|c
limit=61,d83d,62
limit0-len=0
claude-split-undefined-separator — rts_error

Bun output:

noarg-len=1
noarg-0=a,b,c
noarg-eq-src=true
undef-len=1
undef-0=a,b,c
literal-len=2
literal=a|b
var-undef-len=1
null-len=2
null=a|b
null-nomatch=abc
undef-limit0-len=0
undef-limit1-len=1
undef-limit1-0=a,b,c
noarg-limit0-len=0
empty-undef-len=1
empty-undef-0=[]
empty-sep-len=0
absent-len=1
absent-0=a,b,c
is-array=true
elem-type=string

Node output:

noarg-len=1
noarg-0=a,b,c
noarg-eq-src=true
undef-len=1
undef-0=a,b,c
literal-len=2
literal=a|b
var-undef-len=1
null-len=2
null=a|b
null-nomatch=abc
undef-limit0-len=0
undef-limit1-len=1
undef-limit1-0=a,b,c
noarg-limit0-len=0
empty-undef-len=1
empty-undef-0=[]
empty-sep-len=0
absent-len=1
absent-0=a,b,c
is-array=true
elem-type=string

RTS output:


claude-tostring-vs-valueof-hint — rts_diverge

Bun output:

7
STR
STR
7
8
STR
STR,STR
99
[object Object]
[object Object]
[object Object]

Node output:

7
STR
STR
7
8
STR
STR,STR
99
[object Object]
[object Object]
[object Object]

RTS output:

7
STR
STR
7
8
STR
STR,STR
99
99
99
[object Object]
claude-towellformed-lone-surrogates — rts_diverge

Bun output:

ascii wf=true len=3 fixedLen=3 fixed=61,62,63
empty wf=true len=0 fixedLen=0 fixed=
bmp wf=true len=4 fixedLen=4 fixed=63,61,66,e9
valid-pair wf=true len=2 fixedLen=2 fixed=d83d,de00
pair-in-text wf=true len=4 fixedLen=4 fixed=61,d83d,de00,62
two-pairs wf=true len=4 fixedLen=4 fixed=d83d,de00,d83d,de01
lone-hi wf=false len=1 fixedLen=1 fixed=fffd
lone-hi-mid wf=false len=3 fixedLen=3 fixed=61,fffd,62
lone-hi-end wf=false len=3 fixedLen=3 fixed=61,62,fffd
lone-hi-start wf=false len=3 fixedLen=3 fixed=fffd,61,62
lone-lo wf=false len=1 fixedLen=1 fixed=fffd
lone-lo-mid wf=false len=3 fixedLen=3 fixed=61,fffd,62
lone-lo-start wf=false len=3 fixedLen=3 fixed=fffd,61,62
reversed-pair wf=false len=2 fixedLen=2 fixed=fffd,fffd
hi-then-ascii wf=false len=2 fixedLen=2 fixed=fffd,61
hi-then-hi wf=false len=2 fixedLen=2 fixed=fffd,fffd
lo-then-lo wf=false len=2 fixedLen=2 fixed=fffd,fffd
hi-hi-hi-lo wf=false len=4 fixedLen=4 fixed=fffd,fffd,d83d,de00
lone-then-pair wf=false len=3 fixedLen=3 fixed=fffd,d83d,de00
pair-then-lone wf=false len=3 fixedLen=3 fixed=d83d,de00,fffd
hi-min-D800 wf=false len=1 fixedLen=1 fixed=fffd
hi-max-DBFF wf=false len=1 fixedLen=1 fixed=fffd
lo-min-DC00 wf=false len=1 fixedLen=1 fixed=fffd
lo-max-DFFF wf=false len=1 fixedLen=1 fixed=fffd
min-pair wf=true len=2 fixedLen=2 fixed=d800,dc00
max-pair wf=true len=2 fixedLen=2 fixed=dbff,dfff
D7FF wf=true len=1 fixedLen=1 fixed=d7ff
E000 wf=true len=1 fixedLen=1 fixed=e000
replacement-char wf=true len=1 fixedLen=1 fixed=fffd
idempotent=true
fixed-is-wf=true
unchanged=true
len-preserved=true
no-mutate=61,d83d,62,de00,63

Node output:

ascii wf=true len=3 fixedLen=3 fixed=61,62,63
empty wf=true len=0 fixedLen=0 fixed=
bmp wf=true len=4 fixedLen=4 fixed=63,61,66,e9
valid-pair wf=true len=2 fixedLen=2 fixed=d83d,de00
pair-in-text wf=true len=4 fixedLen=4 fixed=61,d83d,de00,62
two-pairs wf=true len=4 fixedLen=4 fixed=d83d,de00,d83d,de01
lone-hi wf=false len=1 fixedLen=1 fixed=fffd
lone-hi-mid wf=false len=3 fixedLen=3 fixed=61,fffd,62
lone-hi-end wf=false len=3 fixedLen=3 fixed=61,62,fffd
lone-hi-start wf=false len=3 fixedLen=3 fixed=fffd,61,62
lone-lo wf=false len=1 fixedLen=1 fixed=fffd
lone-lo-mid wf=false len=3 fixedLen=3 fixed=61,fffd,62
lone-lo-start wf=false len=3 fixedLen=3 fixed=fffd,61,62
reversed-pair wf=false len=2 fixedLen=2 fixed=fffd,fffd
hi-then-ascii wf=false len=2 fixedLen=2 fixed=fffd,61
hi-then-hi wf=false len=2 fixedLen=2 fixed=fffd,fffd
lo-then-lo wf=false len=2 fixedLen=2 fixed=fffd,fffd
hi-hi-hi-lo wf=false len=4 fixedLen=4 fixed=fffd,fffd,d83d,de00
lone-then-pair wf=false len=3 fixedLen=3 fixed=fffd,d83d,de00
pair-then-lone wf=false len=3 fixedLen=3 fixed=d83d,de00,fffd
hi-min-D800 wf=false len=1 fixedLen=1 fixed=fffd
hi-max-DBFF wf=false len=1 fixedLen=1 fixed=fffd
lo-min-DC00 wf=false len=1 fixedLen=1 fixed=fffd
lo-max-DFFF wf=false len=1 fixedLen=1 fixed=fffd
min-pair wf=true len=2 fixedLen=2 fixed=d800,dc00
max-pair wf=true len=2 fixedLen=2 fixed=dbff,dfff
D7FF wf=true len=1 fixedLen=1 fixed=d7ff
E000 wf=true len=1 fixedLen=1 fixed=e000
replacement-char wf=true len=1 fixedLen=1 fixed=fffd
idempotent=true
fixed-is-wf=true
unchanged=true
len-preserved=true
no-mutate=61,d83d,62,de00,63

RTS output:

ascii wf=true len=3 fixedLen=3 fixed=61,62,63
empty wf=true len=0 fixedLen=0 fixed=
bmp wf=true len=4 fixedLen=4 fixed=63,61,66,e9
valid-pair wf=true len=0 fixedLen=0 fixed=
pair-in-text wf=true len=2 fixedLen=2 fixed=61,62
two-pairs wf=true len=0 fixedLen=0 fixed=
lone-hi wf=true len=0 fixedLen=0 fixed=
lone-hi-mid wf=true len=2 fixedLen=2 fixed=61,62
lone-hi-end wf=true len=2 fixedLen=2 fixed=61,62
lone-hi-start wf=true len=2 fixedLen=2 fixed=61,62
lone-lo wf=true len=0 fixedLen=0 fixed=
lone-lo-mid wf=true len=2 fixedLen=2 fixed=61,62
lone-lo-start wf=true len=2 fixedLen=2 fixed=61,62
reversed-pair wf=true len=0 fixedLen=0 fixed=
hi-then-ascii wf=true len=1 fixedLen=1 fixed=61
hi-then-hi wf=true len=0 fixedLen=0 fixed=
lo-then-lo wf=true len=0 fixedLen=0 fixed=
hi-hi-hi-lo wf=true len=0 fixedLen=0 fixed=
lone-then-pair wf=true len=0 fixedLen=0 fixed=
pair-then-lone wf=true len=0 fixedLen=0 fixed=
hi-min-D800 wf=true len=0 fixedLen=0 fixed=
hi-max-DBFF wf=true len=0 fixedLen=0 fixed=
lo-min-DC00 wf=true len=0 fixedLen=0 fixed=
lo-max-DFFF wf=true len=0 fixedLen=0 fixed=
min-pair wf=true len=0 fixedLen=0 fixed=
max-pair wf=true len=0 fixedLen=0 fixed=
D7FF wf=true len=1 fixedLen=1 fixed=d7ff
E000 wf=true len=1 fixedLen=1 fixed=e000
replacement-char wf=true len=1 fixedLen=1 fixed=fffd
idempotent=true
fixed-is-wf=true
unchanged=true
len-preserved=true
no-mutate=61,62,63
claude-trim-exotic-whitespace — rts_diverge

Bun output:

trim-tab=78
trim-lf=78
trim-vt=78
trim-ff=78
trim-cr=78
trim-space=78
trim-nbsp=78
trim-ogham=78
trim-enquad=78
trim-emspace=78
trim-thin=78
trim-hair=78
trim-ls=78
trim-ps=78
trim-narrownb=78
trim-mathsp=78
trim-ideo=78
trim-bom=78
notrim-zwsp=200b,78,200b
notrim-zwnj=200c,78,200c
notrim-zwj=200d,78,200d
notrim-nul=0,78,0
notrim-nextline=85,78,85
exotic-raw=a0,feff,2028,78,2029,3000
exotic-trimStart=78,2029,3000
exotic-trimEnd=a0,feff,2028,78
exotic-trim=78
all-ws-trim-len=0
all-ws-trimStart-len=0
all-ws-trimEnd-len=0
interior=20,61,a0,62,20
interior-trim=61,a0,62
zwsp-blocks=200b,20,78
empty-trim-len=0
nbsp-only-trim-len=0
bom-only-trim-len=0
no-mutate-len=3

Node output:

trim-tab=78
trim-lf=78
trim-vt=78
trim-ff=78
trim-cr=78
trim-space=78
trim-nbsp=78
trim-ogham=78
trim-enquad=78
trim-emspace=78
trim-thin=78
trim-hair=78
trim-ls=78
trim-ps=78
trim-narrownb=78
trim-mathsp=78
trim-ideo=78
trim-bom=78
notrim-zwsp=200b,78,200b
notrim-zwnj=200c,78,200c
notrim-zwj=200d,78,200d
notrim-nul=0,78,0
notrim-nextline=85,78,85
exotic-raw=a0,feff,2028,78,2029,3000
exotic-trimStart=78,2029,3000
exotic-trimEnd=a0,feff,2028,78
exotic-trim=78
all-ws-trim-len=0
all-ws-trimStart-len=0
all-ws-trimEnd-len=0
interior=20,61,a0,62,20
interior-trim=61,a0,62
zwsp-blocks=200b,20,78
empty-trim-len=0
nbsp-only-trim-len=0
bom-only-trim-len=0
no-mutate-len=3

RTS output:

trim-tab=78
trim-lf=78
trim-vt=78
trim-ff=78
trim-cr=78
trim-space=78
trim-nbsp=78
trim-ogham=78
trim-enquad=78
trim-emspace=78
trim-thin=78
trim-hair=78
trim-ls=78
trim-ps=78
trim-narrownb=78
trim-mathsp=78
trim-ideo=78
trim-bom=feff,78,feff
notrim-zwsp=200b,78,200b
notrim-zwnj=200c,78,200c
notrim-zwj=200d,78,200d
notrim-nul=0,78,0
notrim-nextline=78
exotic-raw=a0,feff,2028,78,2029,3000
exotic-trimStart=feff,2028,78,2029,3000
exotic-trimEnd=a0,feff,2028,78
exotic-trim=feff,2028,78
all-ws-trim-len=1
all-ws-trimStart-len=4
all-ws-trimEnd-len=5
interior=20,61,a0,62,20
interior-trim=61,a0,62
zwsp-blocks=200b,20,78
empty-trim-len=0
nbsp-only-trim-len=0
bom-only-trim-len=1
no-mutate-len=3
273_symbol_asynciterator — rts_error

Bun output:

iter=2,4,6

Node output:

iter=2,4,6

RTS output:


378_symbol_species_hasinstance — rts_error

Bun output:

true
false
true
false
0,1,2,3
0,4,5
0,6,7
true
false
2,4,6,8
5
5m
true

Node output:

true
false
true
false
0,1,2,3
0,4,5
0,6,7
true
false
2,4,6,8
5
5m
true

RTS output:


402_template_toPrimitive_order — rts_diverge

Bun output:

S
Sx
7
prim:string|prim:default|prim:number

Node output:

S
Sx
7
prim:string|prim:default|prim:number

RTS output:

T
3x
7
toString|valueOf|prim:number
codex_symbol_toStringTag_custom — rts_error

Bun output:

[object Object]
[object Custom]
[object Box]

Node output:

[object Object]
[object Custom]
[object Box]

RTS output:


codex_symbol_unscopables_with — rts_error

Bun output:

10:2

Node output:

10:2

RTS output:


300_this_strict_top_level — rts_error

Bun output:

strict=true
sloppy=true

Node output:

strict=true
sloppy=true

RTS output:


399_default_param_temporal_order — rts_error

Bun output:

2,3,4
2,10,12
2,3,20
5:5:5
5:5:5

Node output:

2,3,4
2,10,12
2,3,20
5:5:5
5:5:5

RTS output:


400_eval_scope_edges — rts_error

Bun output:

local:missing
7

Node output:

local:missing
7

RTS output:


417_nested_optional_call_this_binding — rts_diverge

Bun output:

5
9
12
undefined

Node output:

5
9
12
undefined

RTS output:

undefined
0
undefined
undefined
claude-closure-block-shadowing — rts_diverge

Bun output:

outer=outer inner=inner2
levels=1,2,3
branch=then
var_no_block_shadow=reassigned:block
let_shadows_var=var:let
shadow_param=arg:shadowed
created_before_shadow=mutated
loop_block_shadow=I0,I1 outer=O

Node output:

outer=outer inner=inner2
levels=1,2,3
branch=then
var_no_block_shadow=reassigned:block
let_shadows_var=var:let
shadow_param=arg:shadowed
created_before_shadow=mutated
loop_block_shadow=I0,I1 outer=O

RTS output:

outer=0 inner=outer
levels=1,1,1
branch=then
var_no_block_shadow=reassigned:block
let_shadows_var=let:let
shadow_param=arg:shadowed
created_before_shadow=0
loop_block_shadow=I0,I1 outer=O
codex_destructuring_iterator_close_on_default_throw — rts_diverge

Bun output:

default
next0,return

Node output:

default
next0,return

RTS output:

x is not defined
codex_for_in_shadowed_var_closure — rts_diverge

Bun output:

a1,b2,c3
c,c,c

Node output:

a1,b2,c3
c,c,c

RTS output:

a1,b2,c3
a,b,c
codex_tdz_typeof_let — rts_diverge

Bun output:

ReferenceError
1

Node output:

ReferenceError
1

RTS output:

undefined
1
codex_dataview_offsets_endian_mix — rts_error

Bun output:

00 00 12 34 78 56 fe ff ff ff 00 00
1234
5678
-2

Node output:

00 00 12 34 78 56 fe ff ff ff 00 00
1234
5678
-2

RTS output:


codex_typedarray_set_overlap — rts_diverge

Bun output:

1,2,1,2,3,4
127,-128,127,4

Node output:

1,2,1,2,3,4
127,-128,127,4

RTS output:

1,2,1,2,3,4
127,128,-129,260
codex_typedarray_species_slice — rts_error

Bun output:

Uint16Array
2
2,3

Node output:

Uint16Array
2
2,3

RTS output:


codex_typedarray_subarray_shared_sort — rts_diverge

Bun output:

2,3,4
5,2,3,4,1
5,9,3,4,1

Node output:

2,3,4
5,2,3,4,1
5,9,3,4,1

RTS output:

2,3,4
5,4,3,2,1
5,4,3,2,1
codex_typedarray_toStringTag — rts_diverge

Bun output:

[object Uint8Array]
[object Int16Array]
[object Float32Array]

Node output:

[object Uint8Array]
[object Int16Array]
[object Float32Array]

RTS output:

0
0
0
107_url_edge_cases — rts_diverge

Bun output:

origin=https://example.com:8443
user=user:pass
path=/b/
query= 
href=https://user:pass@example.com:8443/b/?q=%20#frag

Node output:

origin=https://example.com:8443
user=user:pass
path=/b/
query= 
href=https://user:pass@example.com:8443/b/?q=%20#frag

RTS output:

origin=https://example.com:8443
user=user:pass
path=/b/
query= 
href=https://user:pass@example.com:8443/b/?q=+#frag
codex_url_relative_resolution — rts_diverge

Bun output:

https://example.com/a/d/e?space=a%20b&plus=a+b#frag
/a/d/e
a b
a b
?space=a+b&plus=a+b&emoji=%F0%9F%99%82

Node output:

https://example.com/a/d/e?space=a%20b&plus=a+b#frag
/a/d/e
a b
a b
?space=a+b&plus=a+b&emoji=%F0%9F%99%82

RTS output:



null
null
codex_url_username_password_encoding — rts_diverge

Bun output:

https://a%20b:p%40ss%3Aword@example.com/
a%20b
p%40ss%3Aword

Node output:

https://a%20b:p%40ss%3Aword@example.com/
a%20b
p%40ss%3Aword

RTS output:

https://a b:p@ss:word@example.com/
a b
p@ss:word
codex_urlsearchparams_live_sort — rts_diverge

Bun output:

https://x.test/path?a=1&b=2&b=1&c=hello+world
2,1
z=9

Node output:

https://x.test/path?a=1&b=2&b=1&c=hello+world
2,1
z=9

RTS output:

https://x.test/path?a=1&b=2&b=1&c=hello+world
2,1
a=1&b=2&b=1&c=hello+world
289_headers_getsetcookie — rts_diverge

Bun output:

type=function
vals=a=1|b=2

Node output:

type=function
vals=a=1|b=2

RTS output:

type=object
vals=a=1|b=2
73_headers — rts_diverge

Bun output:

get=1, 3
entries=x-a=1, 3|x-b=2

Node output:

get=1, 3
entries=x-a=1, 3|x-b=2

RTS output:

get=3
entries=x-a=3
74_blob_basics — rts_diverge

Bun output:

size=3
text=hi!

Node output:

size=3
text=hi!

RTS output:

size=3
text=hi
85_request_response — rts_diverge

Bun output:

ct=application/json
txt={"a":1}
m=POST
u=https://example.com/x
b=hi

Node output:

ct=application/json
txt={"a":1}
m=POST
u=https://example.com/x
b=hi

RTS output:

ct=
txt={"a":1}
m=POST
u=https://example.com/x
b=hi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant