| NativeScript | Desktop browsers | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Feature name | Current browser | NS 6.5 Android v8 |
NS 7.0 Android v8 |
NS 8.0 Android v8 |
NS 6.5 iOS JSC |
NS 7.0 iOS v8 |
NS 8.0 iOS v8 |
CH 89 | CH 90 | SF 14 Beta | SF TP | |
| Candidate (stage 3) | ||||||||||||
| §instance class fields | 5/6 | 5/6 | 5/6 | 0/6 | 6/6 | 6/6 | 6/6 | 6/6 | 6/6 | 6/6 | ||
| §public instance class fields |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §private instance class fields basic support |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §private instance class fields initializers | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §optional private instance class fields access | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §optional deep private instance class fields access | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §computed instance class fields | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §static class fields | 3/3 | 3/3 | 3/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | ||
| §public static class fields |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §private static class fields |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §computed static class fields | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §private class methods | 0/4 | 0/4 | 0/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | 0/4 | 0/4 | ||
| §private instance methods | No | No | No | No | Yes | Yes | Yes | Yes | No | No | ||
| §private static methods | No | No | No | No | Yes | Yes | Yes | Yes | No | No | ||
| §private accessor properties | No | No | No | No | Yes | Yes | Yes | Yes | No | No | ||
| §private static accessor properties | No | No | No | No | Yes | Yes | Yes | Yes | No | No | ||
| §Legacy RegExp features in JavaScript | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | ||
| §RegExp "lastMatch" |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §RegExp.$1-$9 |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §Hashbang Grammar |
Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | ||
| §.at() method on the built-in indexables | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 0/3 | ||
| §Array.prototype.at() | No | No | No | No | No | No | No | No | Yes | Flag[1] | ||
| §String.prototype.at() | No | No | No | No | No | No | No | No | Yes | Flag[1] | ||
| §%TypedArray%.prototype.at() | No | No | No | No | No | No | No | No | Yes | Flag[1] | ||
| §Class static initialization blocks | No | No | No | No | No | No | No | No | ? | ? | ||
| Draft (stage 2) | ||||||||||||
| §Generator function.sent Meta Property | No | No | No | No | No | No | No | No | ? | ? | ||
| §Class and Property Decorators | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | ||
| §class decorators | No | No | No | No | No | No | No | No | ? | ? | ||
| §Realms | No | No | No | No | No | No | No | No | ? | ? | ||
| §throw expressions | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | ||
| §logical | No | No | No | No | No | No | No | No | ? | ? | ||
| §parameter initializers | No | No | No | No | No | No | No | No | ? | ? | ||
| §arrow function bodies | No | No | No | No | No | No | No | No | ? | ? | ||
| §conditionals | No | No | No | No | No | No | No | No | ? | ? | ||
| §Set methods | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 0/7 | ||
| §Set.prototype.intersection | No | No | No | No | No | No | No | No | ? | ? | ||
| §Set.prototype.union | No | No | No | No | No | No | No | No | ? | ? | ||
| §Set.prototype.difference | No | No | No | No | No | No | No | No | ? | ? | ||
| §Set.prototype.symmetricDifference | No | No | No | No | No | No | No | No | ? | ? | ||
| §Set.prototype.isDisjointFrom | No | No | No | No | No | No | No | No | ? | ? | ||
| §Set.prototype.isSubsetOf | No | No | No | No | No | No | No | No | ? | ? | ||
| §Set.prototype.isSupersetOf | No | No | No | No | No | No | No | No | ? | ? | ||
| §ArrayBuffer.prototype.transfer | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | ||
| §ArrayBuffer.prototype.transfer() | No | No | No | No | No | No | No | No | No | No | ||
| §ArrayBuffer.prototype.realloc() | No | No | No | No | No | No | No | No | No | No | ||
| §Map.prototype.upsert | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | 0/2 | ||
| §Map.prototype.upsert | No | No | No | No | No | No | No | No | ? | ? | ||
| §WeakMap.prototype.upsert | No | No | No | No | No | No | No | No | ? | ? | ||
| §Array.isTemplateObject | No | No | No | No | No | No | No | No | ? | ? | ||
| §Iterator Helpers | 0/35 | 0/35 | 0/35 | 0/35 | 0/35 | 0/35 | 0/35 | 0/35 | 0/35 | 0/35 | ||
| §instanceof Iterator | No | No | No | No | No | No | No | No | ? | ? | ||
| §extends Iterator | No | No | No | No | No | No | No | No | ? | ? | ||
| §Iterator.from, iterable | No | No | No | No | No | No | No | No | ? | ? | ||
| §Iterator.from, iterator | No | No | No | No | No | No | No | No | ? | ? | ||
| §Iterator.prototype.asIndexedPairs | No | No | No | No | No | No | No | No | ? | ? | ||
| §Iterator.prototype.drop | No | No | No | No | No | No | No | No | ? | ? | ||
| §Iterator.prototype.every | No | No | No | No | No | No | No | No | ? | ? | ||
| §Iterator.prototype.filter | No | No | No | No | No | No | No | No | ? | ? | ||
| §Iterator.prototype.find | No | No | No | No | No | No | No | No | ? | ? | ||
| §Iterator.prototype.flatMap | No | No | No | No | No | No | No | No | ? | ? | ||
| §Iterator.prototype.forEach | No | No | No | No | No | No | No | No | ? | ? | ||
| §Iterator.prototype.map | No | No | No | No | No | No | No | No | ? | ? | ||
| §Iterator.prototype.reduce | No | No | No | No | No | No | No | No | ? | ? | ||
| §Iterator.prototype.some | No | No | No | No | No | No | No | No | ? | ? | ||
| §Iterator.prototype.take | No | No | No | No | No | No | No | No | ? | ? | ||
| §Iterator.prototype.toArray | No | No | No | No | No | No | No | No | ? | ? | ||
| §Iterator.prototype[@@toStringTag] | No | No | No | No | No | No | No | No | ? | ? | ||
| §instanceof AsyncIterator | No | No | No | No | No | No | No | No | ? | ? | ||
| §extends AsyncIterator | No | No | No | No | No | No | No | No | ? | ? | ||
| §AsyncIterator.from, async iterable | No | No | No | No | No | No | No | No | ? | ? | ||
| §AsyncIterator.from, iterable | No | No | No | No | No | No | No | No | ? | ? | ||
| §AsyncIterator.from, iterator | No | No | No | No | No | No | No | No | ? | ? | ||
| §AsyncIterator.prototype.asIndexedPairs | No | No | No | No | No | No | No | No | ? | ? | ||
| §AsyncIterator.prototype.drop | No | No | No | No | No | No | No | No | ? | ? | ||
| §AsyncIterator.prototype.every | No | No | No | No | No | No | No | No | ? | ? | ||
| §AsyncIterator.prototype.filter | No | No | No | No | No | No | No | No | ? | ? | ||
| §AsyncIterator.prototype.find | No | No | No | No | No | No | No | No | ? | ? | ||
| §AsyncIterator.prototype.flatMap | No | No | No | No | No | No | No | No | ? | ? | ||
| §AsyncIterator.prototype.forEach | No | No | No | No | No | No | No | No | ? | ? | ||
| §AsyncIterator.prototype.map | No | No | No | No | No | No | No | No | ? | ? | ||
| §AsyncIterator.prototype.reduce | No | No | No | No | No | No | No | No | ? | ? | ||
| §AsyncIterator.prototype.some | No | No | No | No | No | No | No | No | ? | ? | ||
| §AsyncIterator.prototype.take | No | No | No | No | No | No | No | No | ? | ? | ||
| §AsyncIterator.prototype.toArray | No | No | No | No | No | No | No | No | ? | ? | ||
| §AsyncIterator.prototype[@@toStringTag] | No | No | No | No | No | No | No | No | ? | ? | ||
[1] The feature has to be enabled via jscOptions=--useAtMethod=true flag.