-
-
Notifications
You must be signed in to change notification settings - Fork 524
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(transformer/class-properties): correctly resolve private fields pointing to private methods #8042
Merged
graphite-app
merged 1 commit into
main
from
12-20-fix_transformer_class-properties_correctly_resolve_private_fields_pointing_to_private_methods
Dec 23, 2024
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CodSpeed Performance ReportMerging #8042 will not alter performanceComparing Summary
|
c0c5d1a
to
cf184ca
Compare
5228fbc
to
795d2aa
Compare
Something is wrong. Panic when running |
cf184ca
to
981b37b
Compare
795d2aa
to
88d36ca
Compare
That problem now fixed in #8047. All good. |
Merge activity
|
…ointing to private methods (#8042) We don't transform private methods yet, but in class properties transform, still need to record private methods that classes have, so can correctly resolve private fields. ```js class Outer { #foo = 123; method() { class Inner { #foo() {} // Refers to `Inner`'s `#foo` method, not `Outer`'s `#foo` property prop = this.#foo; } } } ```
7d171db
to
6b08c6e
Compare
Boshen
added a commit
that referenced
this pull request
Dec 25, 2024
## [0.44.0] - 2024-12-25 - ad2a620 ast: [**BREAKING**] Add missing `AssignmentTargetProperty::computed` (#8097) (Boshen) ### Features - c2daa20 ast: Add `Expression::into_inner_expression` (#8048) (overlookmotel) - 618b6aa codege: Minify whitespace in object getter / setter (#8080) (Boshen) - 4727667 codegen: Minify arrow expr `(x) => y` -> `x => y` (#8078) (Boshen) - 0562830 codegen: Minify string with backtick when needed (#8095) (Boshen) - 6237c05 codegen: Minify more whitespace (#8089) (Boshen) - 6355b7c codegen: Minify `export { 's' as 's' }` -> `export { 's' }` (#8093) (Boshen) - fccfda9 codegen: Minify `class{static[computed]}` (#8088) (Boshen) - f873139 codegen: Minify `for (_ of [])` -> `for(_ of[])` (#8086) (Boshen) - 8b8cbcd codegen: Minify `case "foo"` -> `case"foo"` (#8085) (Boshen) - 414c118 codegen: Minify `yield "s"` -> `yield"s"` (#8084) (Boshen) - f8f067b codegen: Minify class method `async*fn(){}` (#8083) (Boshen) - 1d5ae81 codegen: Minify `const [foo] = bar` -> `const[foo]=bar` (#8079) (Boshen) - e3f78fb codegen: `new Foo()` -> `new Foo` when minify (#8077) (Boshen) - d84d60a codegen: Minify numbers with large exponents (#8074) (Boshen) - 373279b codegen: Balance string quotes when minify whitespace (#8072) (Boshen) - 5397fe9 minifier: Constant fold `undefined?.bar` -> `undefined` (#8075) (Boshen) - 1932f1e minifier: Fold `foo === undefined || foo === null` (#8063) (翠 / green) - 11c4bd8 span: Implement source type `{file basename}.d.{extension}.ts` (#8109) (Boshen) - be4feb4 syntax: Add `SymbolId::new` method (#8041) (overlookmotel) - e632a7b transformer: Remove typescript symbols after transform (#8069) (Boshen) ### Bug Fixes - bdc241d codegen: Disallow template literals in object property key (#8108) (Boshen) - 728ed20 codegen: Print `yield * ident` correctly (Boshen) - b605baa minifier: Constant fold strings with tab char (#8096) (Boshen) - de82492 parser: Report syntax errors for missing constructor implementations (#8081) (camc314) - 55d6eb9 parser: Disallow type parameters on class constructors (#8071) (injuly) - be2c60d parser: Parse `import source from from 'mod'` (#8056) (Boshen) - 708e9cf semantic: Report errors for missing class method impls (#8082) (camc314) - 3057686 transformer/class-properties: Unwrap parenthesised expressions (#8049) (overlookmotel) - e67cd05 transformer/class-properties: Correctly resolve private fields pointing to private accessors (#8047) (overlookmotel) - 6b08c6e transformer/class-properties: Correctly resolve private fields pointing to private methods (#8042) (overlookmotel) - 274f117 transformer/nullish-coalescing: Use correct scope id for binding (#8053) (camc314) ### Performance - 78d2e83 sourcemap: Improve perf of `search_original_line_and_column` (#7926) (Cameron) ### Refactor - 7110c7b codegen: Add `print_quoted_utf16` and `print_unquoted_utf16` methods (#8107) (Boshen) - 8b54d89 minifier: Remove parens must happen on enter (#8060) (Boshen) - 7cb84f3 minifier: Only minify on ast node exit (#8059) (Boshen) - 77d845a minifier: Fuse DCE AST passes (#8058) (Boshen) - 6123f5e minifier: Fold statements on exit (#8057) (Boshen) - cbd5169 transformer/class-properties: Do not recreate private field if not transforming it (#8044) (overlookmotel) - 98e8a72 transformer/class-properties: Do not take mut ref when immut ref will do (#8040) (overlookmotel) Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
0-merge
Merge with Graphite Merge Queue
A-ast
Area - AST
A-cfg
Area - Control Flow Graph
A-codegen
Area - Code Generation
A-isolated-declarations
Isolated Declarations
A-linter
Area - Linter
A-minifier
Area - Minifier
A-parser
Area - Parser
A-semantic
Area - Semantic
A-transformer
Area - Transformer / Transpiler
C-bug
Category - Bug
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We don't transform private methods yet, but in class properties transform, still need to record private methods that classes have, so can correctly resolve private fields.