tc39/test262

top-level using

Closed

#5,073 opened on Jun 19, 2026

 (1 comment) (0 reactions) (0 assignees)JavaScript (469 forks)batch import
coveragehelp wanted

Repository metrics

Stars
 (2,073 stars)
PR merge metrics
 (Avg merge 12d 12h) (9 merged PRs in 30d)

Description

Our XS engine has supported Explicit Resource Management for years behind a flag. We are preparing to enable that by default, now that the proposal has achieved Stage 4. 🎉 Despite passing 100% of Explicit Resource Management tests in test262, we found that XS was not invoking [Symbol.dispose] when exiting the top-level of a module (see example below). Perhaps it is worth extending test262 coverage to ensure this is handled correctly and consistently.

class Foo {
	close() {
		trace(`Dispose!\n`);
	}
	toString() {
		return "I'm foo";
	}
	static {
		this.prototype[Symbol.dispose] = this.prototype.close;
	}
}

using x = new Foo
trace(x, "\n");

Contributor guide