mirror of
https://github.com/tc39/test262.git
synced 2025-04-08 19:35:28 +02:00
Support for the accessor keywords for private class fields as part of the decorators proposal. Changes to AST: - Add an AUTO_ACCESSOR value to the ClassLiteralProperty::Kind enum. - Add an AutoAccessorInfo class to be used in ClassLiteralProperty objects of kind AUTO_ACCESSOR to hold the information about the generated getters/setters and backing storage. - Add AutoAccessorGetterBody and AutoAccessorSetterBody statements to implement the logic of generated getters and setters. Changes to Parser: - Add logic to parse the "accessor" keyword and throw when used on non field class properties. - Add preparser logic to mock the function scopes and variable declarations required for the generated getters/setters. - Add parser logic to synthetically create statements for the generated setters/getters. Changes to the Bytecode Generator: - Add logic to BuildClassLiteral to build auto accessor storage private names. - Add logic to set the generated getters/setters in the accessor pair. - Add logic to initialize the accessor storage in BuildClassProperty. - Add AutoAccessorGetterBody and AutoAccessorSetterBody visitors. Tests: - Add parsing-unittests for parsing converage. - Add test262 tests for functionality coverage. - Add test-debug test for devtools support coverage. Bug: 42202709 Change-Id: Ibb9bee3bbd0c09341108856f969e0c22bbb8b9cc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5547688 Reviewed-by: Seth Brenith <seth.brenith@microsoft.com> Commit-Queue: Luis Pardo <lpardosixtos@microsoft.com> Reviewed-by: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/main@{#95612}