google / google/closure-compiler

ECMAScript compatibility tracking issue

Open
#2,899 18 comments 0 reactions 0 assignees View on GitHub
internal-issue-created triage-done
Dominant language
JavaScript
Stars
7.7k
Forks
1.2k
Avg merge
2d 12h
Merged PRs (30d)
6

Description

This is a tracking issue for failed [compat-table](http://kangax.github.io/compat-table/) tests with links to each input, output, error and related issue (updated with v20200426).

These items are filtered out as "won't fix":

- `new Function("features")`: hard to implement
- `Proxy`: impossible to implement
- subclassing for built-ins: impossible to implement (except for `Promise`)
- typed arrays: won't fix? (IE11 has typed array classes but [doesn't have Array methods](https://kangax.github.io/compat-table/es6/#test-typed_arrays), should be fixed?), #3064
- shared memory and atomics (ES2017): impossible to implement

---

# ES2015

## Optimisation

### proper tail calls (tail call optimisation)
- direct recursion ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/optimisation/proper_tail_calls__tail_call_optimisation_/direct_recursion/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/optimisation/proper_tail_calls__tail_call_optimisation_/direct_recursion/out.js))
- mutual recursion ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/optimisation/proper_tail_calls__tail_call_optimisation_/mutual_recursion/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/optimisation/proper_tail_calls__tail_call_optimisation_/mutual_recursion/out.js))

## Syntax

### default function parameters
- arguments object interaction ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/default_function_parameters/arguments_object_interaction/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/default_function_parameters/arguments_object_interaction/out.js))

### rest parameters
- function 'length' property ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/rest_parameters/function_length_property/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/rest_parameters/function_length_property/out.js))
- arguments object interaction ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/rest_parameters/arguments_object_interaction/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/rest_parameters/arguments_object_interaction/out.js))

### spread syntax for iterable objects
- with sparse arrays, in array literals ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/spread_syntax_for_iterable_objects/with_sparse_arrays%2C_in_array_literals/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/spread_syntax_for_iterable_objects/with_sparse_arrays%2C_in_array_literals/out.js))
- with astral plane strings, in function calls ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/spread_syntax_for_iterable_objects/with_astral_plane_strings%2C_in_function_calls/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/spread_syntax_for_iterable_objects/with_astral_plane_strings%2C_in_function_calls/out.js))
- with astral plane strings, in array literals ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/spread_syntax_for_iterable_objects/with_astral_plane_strings%2C_in_array_literals/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/spread_syntax_for_iterable_objects/with_astral_plane_strings%2C_in_array_literals/out.js))
- spreading non-iterables is a runtime error ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/spread_syntax_for_iterable_objects/spreading_non-iterables_is_a_runtime_error/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/spread_syntax_for_iterable_objects/spreading_non-iterables_is_a_runtime_error/out.js))

### object literal extensions
- computed accessors ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/object_literal_extensions/computed_accessors/error.txt))

### for..of loops
- with astral plane strings ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/for..of_loops/with_astral_plane_strings/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/for..of_loops/with_astral_plane_strings/out.js))
- iterator closing, break ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/for..of_loops/iterator_closing%2C_break/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/for..of_loops/iterator_closing%2C_break/out.js)): https://github.com/google/closure-compiler/issues/2958
- iterator closing, throw ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/for..of_loops/iterator_closing%2C_throw/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/for..of_loops/iterator_closing%2C_throw/out.js)): https://github.com/google/closure-compiler/issues/2958

### octal and binary literals
- octal supported by Number() ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/octal_and_binary_literals/octal_supported_by_Number__/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/octal_and_binary_literals/octal_supported_by_Number__/out.js))
- binary supported by Number() ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/octal_and_binary_literals/binary_supported_by_Number__/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/octal_and_binary_literals/binary_supported_by_Number__/out.js))

### template literals
- toString conversion ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/template_literals/toString_conversion/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/template_literals/toString_conversion/out.js))
- tagged template literals ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/template_literals/tagged_template_literals/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/template_literals/tagged_template_literals/out.js))
- passed array is frozen ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/template_literals/passed_array_is_frozen/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/template_literals/passed_array_is_frozen/out.js))
- TemplateStrings call site caching ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/template_literals/TemplateStrings_call_site_caching/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/template_literals/TemplateStrings_call_site_caching/out.js))
- TemplateStrings permanent caching ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/template_literals/TemplateStrings_permanent_caching/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/template_literals/TemplateStrings_permanent_caching/out.js))

### RegExp "y" and "u" flags
- "y" flag ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/RegExp_y_and_u_flags/y_flag/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/RegExp_y_and_u_flags/y_flag/out.js))
- "y" flag, lastIndex ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/RegExp_y_and_u_flags/y_flag%2C_lastIndex/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/RegExp_y_and_u_flags/y_flag%2C_lastIndex/out.js))
- "u" flag ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/RegExp_y_and_u_flags/u_flag/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/RegExp_y_and_u_flags/u_flag/out.js))
- "u" flag, non-BMP Unicode characters ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/RegExp_y_and_u_flags/u_flag%2C_non-BMP_Unicode_characters/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/RegExp_y_and_u_flags/u_flag%2C_non-BMP_Unicode_characters/out.js))
- "u" flag, Unicode code point escapes ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/RegExp_y_and_u_flags/u_flag%2C_Unicode_code_point_escapes/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/RegExp_y_and_u_flags/u_flag%2C_Unicode_code_point_escapes/out.js))
- "u" flag, case folding ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/RegExp_y_and_u_flags/u_flag%2C_case_folding/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/RegExp_y_and_u_flags/u_flag%2C_case_folding/out.js))

### destructuring, declarations
- with astral plane strings ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/destructuring%2C_declarations/with_astral_plane_strings/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/destructuring%2C_declarations/with_astral_plane_strings/out.js))
- iterator closing ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/destructuring%2C_declarations/iterator_closing/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/destructuring%2C_declarations/iterator_closing/out.js)): https://github.com/google/closure-compiler/issues/2958

### destructuring, assignment
- with astral plane strings ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/destructuring%2C_assignment/with_astral_plane_strings/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/destructuring%2C_assignment/with_astral_plane_strings/out.js))
- iterator closing ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/destructuring%2C_assignment/iterator_closing/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/destructuring%2C_assignment/iterator_closing/out.js)): https://github.com/google/closure-compiler/issues/2958

### destructuring, parameters
- with astral plane strings ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/destructuring%2C_parameters/with_astral_plane_strings/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/destructuring%2C_parameters/with_astral_plane_strings/out.js))
- iterator closing ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/destructuring%2C_parameters/iterator_closing/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/destructuring%2C_parameters/iterator_closing/out.js)): https://github.com/google/closure-compiler/issues/2958

### Unicode code point escapes
- in identifiers ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/Unicode_code_point_escapes/in_identifiers/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/Unicode_code_point_escapes/in_identifiers/out.js))

### new.target
- in constructors ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/new.target/in_constructors/error.txt))
- assignment is an early error ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/syntax/new.target/assignment_is_an_early_error/error.txt))

## Bindings

### const
- temporal dead zone ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/bindings/const/temporal_dead_zone/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/bindings/const/temporal_dead_zone/out.js))
- temporal dead zone (strict mode) ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/bindings/const/temporal_dead_zone__strict_mode_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/bindings/const/temporal_dead_zone__strict_mode_/out.js))

### let
- temporal dead zone ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/bindings/let/temporal_dead_zone/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/bindings/let/temporal_dead_zone/out.js))
- temporal dead zone (strict mode) ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/bindings/let/temporal_dead_zone__strict_mode_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/bindings/let/temporal_dead_zone__strict_mode_/out.js))

## Functions

### arrow functions
- no "prototype" property ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/arrow_functions/no_prototype_property/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/arrow_functions/no_prototype_property/out.js))
- lexical "super" binding in constructors ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/arrow_functions/lexical_super_binding_in_constructors/error.txt))
- lexical "new.target" binding ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/arrow_functions/lexical_new.target_binding/error.txt))

### class
- class name is lexically scoped ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/class/class_name_is_lexically_scoped/error.txt))
- computed names, temporal dead zone ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/class/computed_names%2C_temporal_dead_zone/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/class/computed_names%2C_temporal_dead_zone/out.js))
- methods aren't enumerable ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/class/methods_arent_enumerable/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/class/methods_arent_enumerable/out.js))
- implicit strict mode ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/class/implicit_strict_mode/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/class/implicit_strict_mode/out.js))
- constructor requires new ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/class/constructor_requires_new/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/class/constructor_requires_new/out.js)): https://github.com/google/closure-compiler/issues/2919
- extends null ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/class/extends_null/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/class/extends_null/out.js))
- new.target ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/class/new.target/error.txt))

### super
- constructor calls use correct "new.target" binding ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/super/constructor_calls_use_correct_new.target_binding/error.txt))

### generators
- can't use "this" with new ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/generators/cant_use_this_with_new/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/generators/cant_use_this_with_new/out.js))
- %GeneratorPrototype% ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/generators/%25GeneratorPrototype%25/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/generators/%25GeneratorPrototype%25/out.js))
- %GeneratorPrototype% prototype chain ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/generators/%25GeneratorPrototype%25_prototype_chain/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/generators/%25GeneratorPrototype%25_prototype_chain/out.js))
- %GeneratorPrototype%.constructor ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/generators/%25GeneratorPrototype%25.constructor/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/generators/%25GeneratorPrototype%25.constructor/out.js))
- yield *, astral plane strings ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/generators/yield__%2C_astral_plane_strings/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/generators/yield__%2C_astral_plane_strings/out.js))
- yield * on non-iterables is a runtime error ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/generators/yield___on_non-iterables_is_a_runtime_error/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/generators/yield___on_non-iterables_is_a_runtime_error/out.js))
- yield *, iterator closing via throw() ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/generators/yield__%2C_iterator_closing_via_throw__/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/generators/yield__%2C_iterator_closing_via_throw__/out.js))
- shorthand generators can't be constructors ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/functions/generators/shorthand_generators_cant_be_constructors/error.txt))

## Built ins

### Map
- constructor requires new ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Map/constructor_requires_new/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Map/constructor_requires_new/out.js)): https://github.com/google/closure-compiler/issues/2919
- iterator closing ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Map/iterator_closing/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Map/iterator_closing/out.js)): https://github.com/google/closure-compiler/issues/2958
- Map iterator prototype chain ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Map/Map_iterator_prototype_chain/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Map/Map_iterator_prototype_chain/out.js))
- Map[Symbol.species] ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Map/Map_Symbol.species_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Map/Map_Symbol.species_/out.js))

### Set
- constructor requires new ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Set/constructor_requires_new/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Set/constructor_requires_new/out.js)): https://github.com/google/closure-compiler/issues/2919
- iterator closing ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Set/iterator_closing/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Set/iterator_closing/out.js)): https://github.com/google/closure-compiler/issues/2958
- Set iterator prototype chain ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Set/Set_iterator_prototype_chain/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Set/Set_iterator_prototype_chain/out.js))
- Set[Symbol.species] ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Set/Set_Symbol.species_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Set/Set_Symbol.species_/out.js))

### WeakMap
- constructor requires new ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/WeakMap/constructor_requires_new/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/WeakMap/constructor_requires_new/out.js)): https://github.com/google/closure-compiler/issues/2919
- iterator closing ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/WeakMap/iterator_closing/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/WeakMap/iterator_closing/out.js)): https://github.com/google/closure-compiler/issues/2958
- WeakMap.prototype isn't an instance ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/WeakMap/WeakMap.prototype_isnt_an_instance/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/WeakMap/WeakMap.prototype_isnt_an_instance/out.js))

### WeakSet
- constructor requires new ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/WeakSet/constructor_requires_new/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/WeakSet/constructor_requires_new/out.js)): https://github.com/google/closure-compiler/issues/2919
- iterator closing ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/WeakSet/iterator_closing/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/WeakSet/iterator_closing/out.js)): https://github.com/google/closure-compiler/issues/2958

### Reflect
- Reflect.ownKeys, symbol keys ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Reflect/Reflect.ownKeys%2C_symbol_keys/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Reflect/Reflect.ownKeys%2C_symbol_keys/out.js))
- Reflect.construct sets new.target meta-property ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Reflect/Reflect.construct_sets_new.target_meta-property/error.txt))
- Reflect.construct, Promise subclassing ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Reflect/Reflect.construct%2C_Promise_subclassing/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Reflect/Reflect.construct%2C_Promise_subclassing/out.js))

### Promise
- Promise.prototype isn't an instance ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Promise/Promise.prototype_isnt_an_instance/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Promise/Promise.prototype_isnt_an_instance/out.js))
- Promise[Symbol.species] ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Promise/Promise_Symbol.species_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Promise/Promise_Symbol.species_/out.js))

### Symbol
- typeof support ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/typeof_support/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/typeof_support/out.js))
- symbol keys are hidden to pre-ES6 code ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/symbol_keys_are_hidden_to_pre-ES6_code/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/symbol_keys_are_hidden_to_pre-ES6_code/out.js))
- symbols inherit from Symbol.prototype ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/symbols_inherit_from_Symbol.prototype/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/symbols_inherit_from_Symbol.prototype/out.js))
- cannot coerce to string or number ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/cannot_coerce_to_string_or_number/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/cannot_coerce_to_string_or_number/out.js))
- can convert with String() ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/can_convert_with_String__/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/can_convert_with_String__/out.js))
- Object(symbol) ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/Object_symbol_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/Object_symbol_/out.js))
- JSON.stringify ignores symbol primitives ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/JSON.stringify_ignores_symbol_primitives/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/JSON.stringify_ignores_symbol_primitives/out.js))
- JSON.stringify ignores symbol objects ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/JSON.stringify_ignores_symbol_objects/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/JSON.stringify_ignores_symbol_objects/out.js))
- global symbol registry ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/global_symbol_registry/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/Symbol/global_symbol_registry/out.js))

### well-known symbols
- Symbol.hasInstance ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.hasInstance/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.hasInstance/out.js))
- Symbol.isConcatSpreadable ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.isConcatSpreadable/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.isConcatSpreadable/out.js))
- Symbol.iterator, arguments object ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.iterator%2C_arguments_object/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.iterator%2C_arguments_object/out.js))
- Symbol.species, existence ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.species%2C_existence/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.species%2C_existence/out.js))
- Symbol.species, Array.prototype.concat ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.species%2C_Array.prototype.concat/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.species%2C_Array.prototype.concat/out.js))
- Symbol.species, Array.prototype.filter ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.species%2C_Array.prototype.filter/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.species%2C_Array.prototype.filter/out.js))
- Symbol.species, Array.prototype.map ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.species%2C_Array.prototype.map/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.species%2C_Array.prototype.map/out.js))
- Symbol.species, Array.prototype.slice ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.species%2C_Array.prototype.slice/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.species%2C_Array.prototype.slice/out.js))
- Symbol.species, Array.prototype.splice ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.species%2C_Array.prototype.splice/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.species%2C_Array.prototype.splice/out.js))
- Symbol.species, RegExp.prototype[Symbol.split] ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.species%2C_RegExp.prototype_Symbol.split_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.species%2C_RegExp.prototype_Symbol.split_/out.js))
- Symbol.species, Promise.prototype.then ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.species%2C_Promise.prototype.then/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.species%2C_Promise.prototype.then/out.js))
- Symbol.replace ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.replace/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.replace/out.js))
- Symbol.search ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.search/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.search/out.js))
- Symbol.split ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.split/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.split/out.js))
- Symbol.match ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.match/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.match/out.js))
- Symbol.match, RegExp constructor ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.match%2C_RegExp_constructor/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.match%2C_RegExp_constructor/out.js))
- Symbol.match, String.prototype.startsWith ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.match%2C_String.prototype.startsWith/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.match%2C_String.prototype.startsWith/out.js))
- Symbol.match, String.prototype.endsWith ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.match%2C_String.prototype.endsWith/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.match%2C_String.prototype.endsWith/out.js))
- Symbol.match, String.prototype.includes ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.match%2C_String.prototype.includes/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.match%2C_String.prototype.includes/out.js))
- Symbol.toPrimitive ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.toPrimitive/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.toPrimitive/out.js))
- Symbol.toStringTag ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.toStringTag/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.toStringTag/out.js))
- Symbol.toStringTag affects existing built-ins ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.toStringTag_affects_existing_built-ins/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.toStringTag_affects_existing_built-ins/out.js))
- Symbol.toStringTag, new built-ins ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.toStringTag%2C_new_built-ins/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.toStringTag%2C_new_built-ins/out.js))
- Symbol.toStringTag, misc. built-ins ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.toStringTag%2C_misc._built-ins/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.toStringTag%2C_misc._built-ins/out.js))
- Symbol.unscopables ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-ins/well-known_symbols/Symbol.unscopables/error.txt))

## Built in extensions

### Object static methods
- Object.getOwnPropertySymbols ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/Object_static_methods/Object.getOwnPropertySymbols/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/Object_static_methods/Object.getOwnPropertySymbols/out.js))

### function "name" property
- function statements ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/function_statements/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/function_statements/out.js))
- function expressions ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/function_expressions/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/function_expressions/out.js))
- new Function ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/new_Function/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/new_Function/out.js))
- bound functions ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/bound_functions/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/bound_functions/out.js))
- variables (function) ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/variables__function_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/variables__function_/out.js))
- object methods (function) ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/object_methods__function_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/object_methods__function_/out.js))
- accessor properties ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/accessor_properties/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/accessor_properties/out.js))
- shorthand methods ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/shorthand_methods/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/shorthand_methods/out.js))
- symbol-keyed methods ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/symbol-keyed_methods/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/symbol-keyed_methods/out.js))
- class statements ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/class_statements/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/class_statements/out.js))
- class expressions ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/class_expressions/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/class_expressions/out.js))
- variables (class) ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/variables__class_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/variables__class_/out.js))
- object methods (class) ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/object_methods__class_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/object_methods__class_/out.js))
- class prototype methods ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/class_prototype_methods/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/class_prototype_methods/out.js))
- class static methods ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/class_static_methods/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/class_static_methods/out.js))
- isn't writable, is configurable ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/isnt_writable%2C_is_configurable/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/function_name_property/isnt_writable%2C_is_configurable/out.js))

### String static methods
- String.raw ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/String_static_methods/String.raw/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/String_static_methods/String.raw/out.js)): https://github.com/google/closure-compiler/issues/3136

### String.prototype methods
- String.prototype.normalize ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/String.prototype_methods/String.prototype.normalize/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/String.prototype_methods/String.prototype.normalize/out.js))
- String.prototype[Symbol.iterator] ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/String.prototype_methods/String.prototype_Symbol.iterator_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/String.prototype_methods/String.prototype_Symbol.iterator_/out.js))
- String iterator prototype chain ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/String.prototype_methods/String_iterator_prototype_chain/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/String.prototype_methods/String_iterator_prototype_chain/out.js))

### RegExp.prototype properties
- RegExp.prototype.flags ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/RegExp.prototype_properties/RegExp.prototype.flags/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/RegExp.prototype_properties/RegExp.prototype.flags/out.js))
- RegExp.prototype[Symbol.match] ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/RegExp.prototype_properties/RegExp.prototype_Symbol.match_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/RegExp.prototype_properties/RegExp.prototype_Symbol.match_/out.js))
- RegExp.prototype[Symbol.replace] ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/RegExp.prototype_properties/RegExp.prototype_Symbol.replace_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/RegExp.prototype_properties/RegExp.prototype_Symbol.replace_/out.js))
- RegExp.prototype[Symbol.split] ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/RegExp.prototype_properties/RegExp.prototype_Symbol.split_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/RegExp.prototype_properties/RegExp.prototype_Symbol.split_/out.js))
- RegExp.prototype[Symbol.search] ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/RegExp.prototype_properties/RegExp.prototype_Symbol.search_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/RegExp.prototype_properties/RegExp.prototype_Symbol.search_/out.js))
- RegExp[Symbol.species] ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/RegExp.prototype_properties/RegExp_Symbol.species_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/RegExp.prototype_properties/RegExp_Symbol.species_/out.js))

### Array static methods
- Array.from, iterator closing ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/Array_static_methods/Array.from%2C_iterator_closing/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/Array_static_methods/Array.from%2C_iterator_closing/out.js))
- Array[Symbol.species] ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/Array_static_methods/Array_Symbol.species_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/Array_static_methods/Array_Symbol.species_/out.js))

### Array.prototype methods
- Array iterator prototype chain ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/Array.prototype_methods/Array_iterator_prototype_chain/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/Array.prototype_methods/Array_iterator_prototype_chain/out.js))
- Array.prototype[Symbol.unscopables] ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/Array.prototype_methods/Array.prototype_Symbol.unscopables_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/Array.prototype_methods/Array.prototype_Symbol.unscopables_/out.js))

### Math methods
- Math.fround ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/Math_methods/Math.fround/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/Math_methods/Math.fround/out.js))
- Math.cbrt ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/Math_methods/Math.cbrt/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/Math_methods/Math.cbrt/out.js))

### Date.prototype[Symbol.toPrimitive]
- Date.prototype[Symbol.toPrimitive] ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/Date.prototype_Symbol.toPrimitive_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/built-in_extensions/Date.prototype_Symbol.toPrimitive_/out.js))

## Misc

### prototype of bound functions
- basic functions ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/prototype_of_bound_functions/basic_functions/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/prototype_of_bound_functions/basic_functions/out.js))
- generator functions ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/prototype_of_bound_functions/generator_functions/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/prototype_of_bound_functions/generator_functions/out.js))
- arrow functions ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/prototype_of_bound_functions/arrow_functions/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/prototype_of_bound_functions/arrow_functions/out.js))
- classes ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/prototype_of_bound_functions/classes/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/prototype_of_bound_functions/classes/out.js))
- subclasses ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/prototype_of_bound_functions/subclasses/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/prototype_of_bound_functions/subclasses/out.js))

### Object static methods accept primitives
- Object.getPrototypeOf ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.getPrototypeOf/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.getPrototypeOf/out.js))
- Object.getOwnPropertyDescriptor ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.getOwnPropertyDescriptor/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.getOwnPropertyDescriptor/out.js))
- Object.getOwnPropertyNames ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.getOwnPropertyNames/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.getOwnPropertyNames/out.js))
- Object.seal ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.seal/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.seal/out.js))
- Object.freeze ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.freeze/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.freeze/out.js))
- Object.preventExtensions ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.preventExtensions/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.preventExtensions/out.js))
- Object.isSealed ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.isSealed/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.isSealed/out.js))
- Object.isFrozen ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.isFrozen/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.isFrozen/out.js))
- Object.isExtensible ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.isExtensible/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.isExtensible/out.js))
- Object.keys ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.keys/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Object_static_methods_accept_primitives/Object.keys/out.js))

### own property order
- Object.getOwnPropertyNames ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/own_property_order/Object.getOwnPropertyNames/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/own_property_order/Object.getOwnPropertyNames/out.js))
- Reflect.ownKeys, string key order ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/own_property_order/Reflect.ownKeys%2C_string_key_order/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/own_property_order/Reflect.ownKeys%2C_string_key_order/out.js))
- Reflect.ownKeys, symbol key order ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/own_property_order/Reflect.ownKeys%2C_symbol_key_order/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/own_property_order/Reflect.ownKeys%2C_symbol_key_order/out.js))

### Updated identifier syntax
- var ⸯ; ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Updated_identifier_syntax/var_U%2B2E2F_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Updated_identifier_syntax/var_U%2B2E2F_/out.js))
- var 𐋀; ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/Updated_identifier_syntax/var_U%2B102C0_/error.txt))

### miscellaneous
- duplicate property names in strict mode ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/miscellaneous/duplicate_property_names_in_strict_mode/error.txt))
- accessors aren't constructors ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/miscellaneous/accessors_arent_constructors/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/miscellaneous/accessors_arent_constructors/out.js))
- RegExp constructor can alter flags ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/miscellaneous/RegExp_constructor_can_alter_flags/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/miscellaneous/RegExp_constructor_can_alter_flags/out.js))
- RegExp.prototype.toString generic and uses "flags" property ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/miscellaneous/RegExp.prototype.toString_generic_and_uses_flags_property/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/miscellaneous/RegExp.prototype.toString_generic_and_uses_flags_property/out.js))
- built-in prototypes are not instances ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/miscellaneous/built-in_prototypes_are_not_instances/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/miscellaneous/built-in_prototypes_are_not_instances/out.js))
- function 'length' is configurable ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/miscellaneous/function_length_is_configurable/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/misc/miscellaneous/function_length_is_configurable/out.js))

## Annex b

### non-strict function semantics
- hoisted block-level function declaration ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/non-strict_function_semantics/hoisted_block-level_function_declaration/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/non-strict_function_semantics/hoisted_block-level_function_declaration/out.js))
- labeled function statements ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/non-strict_function_semantics/labeled_function_statements/error.txt))
- function statements in if-statement clauses ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/non-strict_function_semantics/function_statements_in_if-statement_clauses/error.txt))

### __proto__ in object literals
- basic support ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/__proto___in_object_literals/basic_support/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/__proto___in_object_literals/basic_support/out.js))
- multiple __proto__ is an error ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/__proto___in_object_literals/multiple___proto___is_an_error/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/__proto___in_object_literals/multiple___proto___is_an_error/out.js))
- not a computed property ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/__proto___in_object_literals/not_a_computed_property/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/__proto___in_object_literals/not_a_computed_property/out.js))
- not a shorthand property ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/__proto___in_object_literals/not_a_shorthand_property/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/__proto___in_object_literals/not_a_shorthand_property/out.js))
- not a shorthand method ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/__proto___in_object_literals/not_a_shorthand_method/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/__proto___in_object_literals/not_a_shorthand_method/out.js))

### Object.prototype.__proto__
- absent from Object.create(null) ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/Object.prototype.__proto__/absent_from_Object.create_null_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/Object.prototype.__proto__/absent_from_Object.create_null_/out.js))
- present in hasOwnProperty() ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/Object.prototype.__proto__/present_in_hasOwnProperty__/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/Object.prototype.__proto__/present_in_hasOwnProperty__/out.js))
- correct property descriptor ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/Object.prototype.__proto__/correct_property_descriptor/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/Object.prototype.__proto__/correct_property_descriptor/out.js))
- present in Object.getOwnPropertyNames() ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/Object.prototype.__proto__/present_in_Object.getOwnPropertyNames__/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/Object.prototype.__proto__/present_in_Object.getOwnPropertyNames__/out.js))

### RegExp.prototype.compile
- returns this ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/RegExp.prototype.compile/returns_this/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es6/latest/annex_b/RegExp.prototype.compile/returns_this/out.js))

# ES2016+

## 2016 features

### Array.prototype.includes
- %TypedArray%.prototype.includes ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2016_features/Array.prototype.includes/%25TypedArray%25.prototype.includes/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2016_features/Array.prototype.includes/%25TypedArray%25.prototype.includes/out.js))

## 2016 misc

### generator functions can't be used with "new"
- generator functions can't be used with "new" ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2016_misc/generator_functions_cant_be_used_with_new/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2016_misc/generator_functions_cant_be_used_with_new/out.js))

### strict fn w/ non-strict non-simple params is error
- strict fn w/ non-strict non-simple params is error ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2016_misc/strict_fn_w__non-strict_non-simple_params_is_error/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2016_misc/strict_fn_w__non-strict_non-simple_params_is_error/out.js))

## 2017 features

### Object static methods
- Object.getOwnPropertyDescriptors doesn't provide undefined descriptors ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_features/Object_static_methods/Object.getOwnPropertyDescriptors_doesnt_provide_undefined_descriptors/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_features/Object_static_methods/Object.getOwnPropertyDescriptors_doesnt_provide_undefined_descriptors/out.js))

### async functions
- no line break between async and function ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_features/async_functions/no_line_break_between_async_and_function/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_features/async_functions/no_line_break_between_async_and_function/out.js))
- no "prototype" property ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_features/async_functions/no_prototype_property/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_features/async_functions/no_prototype_property/out.js))
- cannot await in parameters ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_features/async_functions/cannot_await_in_parameters/error.txt))
- correct prototype chain ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_features/async_functions/correct_prototype_chain/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_features/async_functions/correct_prototype_chain/out.js))
- async function prototype, Symbol.toStringTag ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_features/async_functions/async_function_prototype%2C_Symbol.toStringTag/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_features/async_functions/async_function_prototype%2C_Symbol.toStringTag/out.js))
- async function constructor ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_features/async_functions/async_function_constructor/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_features/async_functions/async_function_constructor/out.js))

## 2017 misc

### RegExp "u" flag, case folding
- RegExp "u" flag, case folding ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_misc/RegExp_u_flag%2C_case_folding/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_misc/RegExp_u_flag%2C_case_folding/out.js))

## 2017 annex b

### Object.prototype getter/setter methods
- __defineGetter__, ToObject(this) ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_annex_b/Object.prototype_getter_setter_methods/__defineGetter__%2C_ToObject_this_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_annex_b/Object.prototype_getter_setter_methods/__defineGetter__%2C_ToObject_this_/out.js))
- __defineSetter__, ToObject(this) ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_annex_b/Object.prototype_getter_setter_methods/__defineSetter__%2C_ToObject_this_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_annex_b/Object.prototype_getter_setter_methods/__defineSetter__%2C_ToObject_this_/out.js))
- __lookupGetter__, ToObject(this) ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_annex_b/Object.prototype_getter_setter_methods/__lookupGetter__%2C_ToObject_this_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_annex_b/Object.prototype_getter_setter_methods/__lookupGetter__%2C_ToObject_this_/out.js))
- __lookupGetter__, data properties can shadow accessors ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_annex_b/Object.prototype_getter_setter_methods/__lookupGetter__%2C_data_properties_can_shadow_accessors/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_annex_b/Object.prototype_getter_setter_methods/__lookupGetter__%2C_data_properties_can_shadow_accessors/out.js))
- __lookupSetter__, ToObject(this) ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_annex_b/Object.prototype_getter_setter_methods/__lookupSetter__%2C_ToObject_this_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_annex_b/Object.prototype_getter_setter_methods/__lookupSetter__%2C_ToObject_this_/out.js))
- __lookupSetter__, data properties can shadow accessors ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_annex_b/Object.prototype_getter_setter_methods/__lookupSetter__%2C_data_properties_can_shadow_accessors/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_annex_b/Object.prototype_getter_setter_methods/__lookupSetter__%2C_data_properties_can_shadow_accessors/out.js))

### assignments allowed in for-in head in non-strict mode
- assignments allowed in for-in head in non-strict mode ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2017_annex_b/assignments_allowed_in_for-in_head_in_non-strict_mode/error.txt))

## 2018 features

### object rest/spread properties
- object rest properties ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2018_features/object_rest_spread_properties/object_rest_properties/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2018_features/object_rest_spread_properties/object_rest_properties/out.js)): https://github.com/google/closure-compiler/issues/3139
- object spread properties ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2018_features/object_rest_spread_properties/object_spread_properties/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2018_features/object_rest_spread_properties/object_spread_properties/out.js)): https://github.com/google/closure-compiler/issues/3139

### s (dotAll) flag for regular expressions
- s (dotAll) flag for regular expressions ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2018_features/s__dotAll__flag_for_regular_expressions/error.txt))

### RegExp named capture groups
- RegExp named capture groups ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2018_features/RegExp_named_capture_groups/error.txt))

### RegExp Lookbehind Assertions
- RegExp Lookbehind Assertions ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2018_features/RegExp_Lookbehind_Assertions/error.txt))

### RegExp Unicode Property Escapes
- RegExp Unicode Property Escapes ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2018_features/RegExp_Unicode_Property_Escapes/error.txt))

## 2018 misc

### Proxy "ownKeys" handler, duplicate keys for non-extensible targets
- Proxy "ownKeys" handler, duplicate keys for non-extensible targets ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2018_misc/Proxy_ownKeys_handler%2C_duplicate_keys_for_non-extensible_targets/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2018_misc/Proxy_ownKeys_handler%2C_duplicate_keys_for_non-extensible_targets/out.js))

### template literal revision
- template literal revision ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2018_misc/template_literal_revision/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2018_misc/template_literal_revision/out.js))

## 2019 features

### Array.prototype.{flat, flatMap}
- flat and flatMap in Array.prototype[@@unscopables] ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_features/Array.prototype._flat%2C_flatMap_/flat_and_flatMap_in_Array.prototype___unscopables_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_features/Array.prototype._flat%2C_flatMap_/flat_and_flatMap_in_Array.prototype___unscopables_/out.js))

## 2019 misc

### Symbol.prototype.description
- undefined description ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Symbol.prototype.description/undefined_description/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Symbol.prototype.description/undefined_description/out.js))

### Function.prototype.toString revision
- functions created with the Function constructor ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Function.prototype.toString_revision/functions_created_with_the_Function_constructor/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Function.prototype.toString_revision/functions_created_with_the_Function_constructor/out.js))
- arrows ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Function.prototype.toString_revision/arrows/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Function.prototype.toString_revision/arrows/out.js))
- [native code] ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Function.prototype.toString_revision/_native_code_/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Function.prototype.toString_revision/_native_code_/out.js))
- class expression with implicit constructor ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Function.prototype.toString_revision/class_expression_with_implicit_constructor/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Function.prototype.toString_revision/class_expression_with_implicit_constructor/out.js))
- class expression with explicit constructor ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Function.prototype.toString_revision/class_expression_with_explicit_constructor/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Function.prototype.toString_revision/class_expression_with_explicit_constructor/out.js))
- unicode escape sequences in identifiers ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Function.prototype.toString_revision/unicode_escape_sequences_in_identifiers/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Function.prototype.toString_revision/unicode_escape_sequences_in_identifiers/out.js))
- methods and computed property names ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Function.prototype.toString_revision/methods_and_computed_property_names/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Function.prototype.toString_revision/methods_and_computed_property_names/out.js))

### Well-formed JSON.stringify
- Well-formed JSON.stringify ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Well-formed_JSON.stringify/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2019_misc/Well-formed_JSON.stringify/out.js))

## 2020 features

### BigInt
- basic functionality ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2020_features/BigInt/basic_functionality/error.txt))
- constructor ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2020_features/BigInt/constructor/error.txt))
- BigInt.asUintN ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2020_features/BigInt/BigInt.asUintN/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2020_features/BigInt/BigInt.asUintN/out.js))
- BigInt.asIntN ([in](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2020_features/BigInt/BigInt.asIntN/in.js)/[out](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2020_features/BigInt/BigInt.asIntN/out.js))
- BigInt64Array ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2020_features/BigInt/BigInt64Array/error.txt))
- BigUint64Array ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2020_features/BigInt/BigUint64Array/error.txt))
- DataView.prototype.getBigInt64 ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2020_features/BigInt/DataView.prototype.getBigInt64/error.txt))
- DataView.prototype.getBigUint64 ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2020_features/BigInt/DataView.prototype.getBigUint64/error.txt))

### optional chaining operator (?.)
- optional property access ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2020_features/optional_chaining_operator___._/optional_property_access/error.txt))
- optional bracket access ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2020_features/optional_chaining_operator___._/optional_bracket_access/error.txt))
- optional method call ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2020_features/optional_chaining_operator___._/optional_method_call/error.txt))
- optional function call ([compile error](https://github.com/teppeis/closure-compiler-es6-compat-table/blob/master/es2016plus/latest/2020_features/optional_chaining_operator___._/optional_function_call/error.txt))

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.