refactor(compiler): replace Comment nodes with leadingComments property (#38811)
Common AST formats such as TS and Babel do not use a separate node for comments, but instead attach comments to other AST nodes. Previously this was worked around in TS by creating a `NotEmittedStatement` AST node to attach the comment to. But Babel does not have this facility, so it will not be a viable approach for the linker. This commit refactors the output AST, to remove the `CommentStmt` and `JSDocCommentStmt` nodes. Instead statements have a collection of `leadingComments` that are rendered/attached to the final AST nodes when being translated or printed. PR Close #38811
This commit is contained in:

committed by
Misko Hevery

parent
7fb388f929
commit
d795a00137
@ -1663,12 +1663,12 @@ runInEachFileSystem(() => {
|
||||
JSON.stringify({angularCompilerOptions: {annotateForClosureCompiler: true}}));
|
||||
mainNgcc({basePath: '/dist', propertiesToConsider: ['es2015']});
|
||||
const jsContents = fs.readFile(_(`/dist/local-package/index.js`));
|
||||
expect(jsContents).toContain('/** @nocollapse */ \nAppComponent.ɵcmp =');
|
||||
expect(jsContents).toContain('/** @nocollapse */\nAppComponent.ɵcmp =');
|
||||
});
|
||||
it('should default to not give closure annotated output', () => {
|
||||
mainNgcc({basePath: '/dist', propertiesToConsider: ['es2015']});
|
||||
const jsContents = fs.readFile(_(`/dist/local-package/index.js`));
|
||||
expect(jsContents).not.toContain('/** @nocollapse */');
|
||||
expect(jsContents).not.toContain('@nocollapse');
|
||||
});
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user