You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Method/accessor source text and object-literal accessor names: String(C.prototype.m) is [native code]; get-accessor .name is "" #9468
Follow-ups to #9413 (PR #9465), which added the class-side source registry (Module::class_source_text). Three smaller identity gaps remain, grouped because they share the fix surface:
Object-literal accessor .name is "" where node gives "get g" / "set s". Class accessors are correct ("get p"), so the NamedEvaluation prefixing exists — the object-literal lowering path doesn't call it.
.cts NamedEvaluation gaps, upstream of class metadata entirely: module.exports = class {} gets .name === "__perry_cjs_default__" from the pre-parse source rewrite (cjs_wrap/hoist_classes.rs:178; node: ""), and const C = class {} inside a .cts loses NamedEvaluation ("" vs "C"). The committed test_class_name_cjs_9413.cts documents both and deliberately does not assert them — un-skip those arms as part of this fix.
Verification bar
Extend the two #9413 fixtures rather than adding new ones: method/getter/setter/static-method source text through String(), .toString() and template interpolation; async and generator methods; object-literal get/set names; the two .cts arms un-skipped. All byte-compared to node, each demonstrated failing before the change.
Activity