Modern JavaScript
SkillDev toolsWrite, modernize, and review JavaScript against real ECMAScript language features and explicit runtime targets. Use for JavaScript or Node.js code, ES edition attribution (ES2015-ES2026), compatibility and polyfill/transpile decisions, array/iterator/Set/Map/Promise/RegExp/TypedArray APIs, modules,
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Modern JavaScript skill
What this skill tells your AI
The instructions your AI receives, as published by ccheney/robust-skills in skills/modern-javascript/SKILL.md and read by ahel’s review.
Keep specification status, runtime support, and toolchain support separate. The user's explicit instructions take precedence over this skill's guidelines.
Work against the target
Use the relevant JavaScript, required behavior, and declared runtime as input. Inspect engines, browser targets, lockfiles, and build configuration as needed for the feature. Do not invent a baseline or upgrade runtimes merely to use newer syntax.
Prefer a supported standardized feature. A proposal can fit when the user/project chooses it and a maintained transform or polyfill implements the required revision. Bundled edition and support tables are dated snapshots; verify changing status against the sources below.
Preserve semantics
- Keep mutation, property access, iterator consumption, evaluation order, error propagation, and concurrency behavior intact when modernizing.
- Distinguish syntax transforms from runtime polyfills. TypeScript declarations do not supply missing runtime APIs.
- Treat iterator helpers as lazy and single-pass;
Array.fromAsyncconsumes sequentially, whilePromise.allobserves already-started work concurrently. - Do not use
forEach(async ...)when completion must be awaited. Rejection and timeouts do not cancel underlying work by themselves. - Distinguish host APIs such as
fetchandstructuredClonefrom ECMA-262 features, andIntlfrom the separate ECMA-402 standard. - Do not introduce withdrawn Records & Tuples syntax or silently switch between legacy and standard-style decorator semantics.
Deliver the requested code or explanation, noting a required compatibility path when relevant. Verify changed behavior and any fallback that ships; select checks proportional to the change rather than requiring every project check for a syntax answer.
References
Load the semantic or compatibility topic needed, not every edition.
| Task | Reference |
|---|---|
| Runtime targets, Babel, TypeScript, polyfills | COMPATIBILITY.md |
| Async functions and early annual additions | ES2016-ES2017.md |
| Object spread, async iteration, RegExp, flattening | ES2018-ES2019.md |
| Classes, property checks, change-by-copy | ES2022-ES2023.md |
| Grouping, promise resolvers, buffers, Unicode sets | ES2024.md |
| Set/iterator helpers, import attributes, RegExp | ES2025.md |
ES2026 additions such as Array.fromAsync | ES2026.md |
| Temporal, resource management, proposals, withdrawn syntax | UPCOMING.md |
| Promise combinators and error behavior | PROMISES.md |
| Pools, retries, cancellation, async iteration | CONCURRENCY.md |
| Compact syntax lookup | CHEATSHEET.md |
Use frozen ECMA-262 editions for edition membership, TC39 proposals for proposal status, and official runtime/toolchain documentation for availability.
Signals
- GitHub stars
- 59
- Forks
- 3
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
modern-javascript- Source
- github.com/ccheney/robust-skills