| Feature | TC39 | CoreJS | Babel | Civet | JS+ |
| Temporal | ✅ Stage 4 | ❌ | ❌ | ❌ | ❌ |
| Joint iteration | ✅ Stage 3 | ✅ | ❌ | ❌ | ❌ |
| Atomics.pause | ✅ Stage 3 | ❌ | ❌ | ❌ | ❌ |
| Legacy RegExp features | ✅ Stage 3 | ❌ | ❌ | ❌ | ❌ |
| Iterator chunking | ✅ Stage 2.7 | ✅ | ❌ | ❌ | ✅ |
| Error stack accessor | ✅ Stage 2.7 | | | | ❌ |
| Iterator join | ✅ Stage 2.7 | | | | ❌ |
| Iterator.includes | ✅ Stage 2.7 | ❌ | ❌ | ❌ | ❌ |
| Promise await dictionary | ✅ Stage 2.7 | ❌ | ❌ | ❌ | ✅ |
| ShadowRealm | ✅ Stage 2.7 | | | | ❌ |
| Async iterator helpers | ✅ Stage 2 | ✅ | | | ❌ |
| Iterator range (range) | ✅ Stage 2 | ✅ | | | ❌ |
| Math.clamp | ✅ Stage 2 | ✅ | ❌ | ❌ | ✅ |
| Reflect.isTemplateObject | ✅ Stage 2 | ✅ | | | ❌ |
| Symbol predicates | ✅ Stage 2 | ✅ | | | ❌ |
| Async context | ✅ Stage 2 | | | | ❌ |
| Collection (coerceKey, coerceValue) | ✅ Stage 2 | | | | ❌ |
| Error.captureStackTrace | ✅ Stage 2 | | | | ❌ |
| JSON.parseImmutable | ✅ Stage 2 | | | | ❌ |
| Object.keysLength | ✅ Stage 2 | ❌ | ❌ | ❌ | ✅ |
| Promise.isPromise | ✅ Stage 2 | ❌ | ❌ | ❌ | ✅ |
| {BigInt,Number}.fromString | ✅ Stage 1 | ✅ | | | ❌ |
| Array filtering | ✅ Stage 1 | ✅ | | | ❌ |
| Array.prototype.unique() | ✅ Stage 1 | ✅ | | | ❌ |
| Collection methods | ✅ Stage 1 | ✅ | | | ❌ |
| Collections of/from | ✅ Stage 1 | ✅ | | | ❌ |
| Observable | ✅ Stage 1 | ✅ | | | ❌ |
| Richer Keys (compositeKey, compositeSymbol) | ✅ Stage 1 | ✅ | | | ❌ |
| String.cooked | ✅ Stage 1 | ✅ | | | ❌ |
| Array Equality | ✅ Stage 1 | | | | ❌ |
| Array.zip and Array.zipKeyed | ✅ Stage 1 | | | | ❌ |
| Built In Modules (aka JS Standard Library) | ✅ Stage 1 | | | | ❌ |
| Bulk-add array elements | ✅ Stage 1 | | | | ❌ |
| Cancellation API | ✅ Stage 1 | | | | ❌ |
| Composites | ✅ Stage 1 | | | | ❌ |
| Error frames above | ✅ Stage 1 | | | | ❌ |
| Error option limit | ✅ Stage 1 | | | | ❌ |
| new.initialize | ✅ Stage 1 | | | | ❌ |
| Object pick/omit | ✅ Stage 1 | | | | ❌ |
| Object property count | ✅ Stage 1 | ❌ | ❌ | ❌ | ✅ |
| Object.freeze + Object.seal syntax | ✅ Stage 1 | | | | ❌ |
| Object.getNonIndexStringProperties() | ✅ Stage 1 | | | | ❌ |
| Random | ✅ Stage 1 | ❌ | ❌ | ❌ | ✅ |
| Representing amounts | ✅ Stage 1 | | | | ❌ |
| Signals | ✅ Stage 1 | | | | ❌ |
| String.prototype.codePoints | ✅ Stage 1 | | | | ❌ |
| TypedArray concat | ✅ Stage 1 | | | | ❌ |
| TypedArray find within | ✅ Stage 1 | | | | ❌ |
| Function.prototype.demethodize | ✅ Stage 0 | ✅ | | | ❌ |
| Reflect.{isCallable,isConstructor} | ✅ Stage 0 | ✅ | | | ❌ |
| {Set,Map}.prototype.toJSON | ✅ Stage -1 | | | | ❌ |
| ArrayBuffer.prototype.transfer | ✅ Stage -1 | | | | ❌ |
| Builtins.typeOf() and Builtins.is() | ✅ Stage -1 | | | | ❌ |
| Math Extensions | ✅ Stage -1 | | | | ❌ |
| Math.signbit: IEEE-754 sign bit | ✅ Stage -1 | | | | ❌ |
| Symbol.thenable | ✅ Stage -1 | | | | ❌ |