fix(compiler-cli): do not lower expressions in non-modules (#21649)
Fixes: #21651 PR Close #21649
This commit is contained in:
parent
879756d44c
commit
7f93aad836
|
@ -325,13 +325,14 @@ export class LowerMetadataCache implements RequestsMap {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Do not validate or lower metadata in a declaration file. Declaration files are requested
|
// Do not validate or lower metadata in a declaration file. Declaration files are requested
|
||||||
// when we need to update the version of the metadata to add informatoin that might be missing
|
// when we need to update the version of the metadata to add information that might be missing
|
||||||
// in the out-of-date version that can be recovered from the .d.ts file.
|
// in the out-of-date version that can be recovered from the .d.ts file.
|
||||||
const declarationFile = sourceFile.isDeclarationFile;
|
const declarationFile = sourceFile.isDeclarationFile;
|
||||||
|
const moduleFile = ts.isExternalModule(sourceFile);
|
||||||
|
|
||||||
const metadata = this.collector.getMetadata(
|
const metadata = this.collector.getMetadata(
|
||||||
sourceFile, this.strict && !declarationFile,
|
sourceFile, this.strict && !declarationFile,
|
||||||
declarationFile ? undefined : substituteExpression);
|
moduleFile && !declarationFile ? substituteExpression : undefined);
|
||||||
|
|
||||||
return {metadata, requests};
|
return {metadata, requests};
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,7 +99,17 @@ describe('Expression lowering', () => {
|
||||||
.toBeTruthy('did not find the data field');
|
.toBeTruthy('did not find the data field');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should throw a validation execption for invalid files', () => {
|
it('should not lower a non-module', () => {
|
||||||
|
const collected = collect(`
|
||||||
|
declare const global: any;
|
||||||
|
const ngDevMode: boolean = (function(global: any) {
|
||||||
|
return global.ngDevMode = true;
|
||||||
|
})(typeof window != 'undefined' && window || typeof self != 'undefined' && self || typeof global != 'undefined' && global);
|
||||||
|
`);
|
||||||
|
expect(collected.requests.size).toBe(0, 'unexpected rewriting');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should throw a validation exception for invalid files', () => {
|
||||||
const cache = new LowerMetadataCache({}, /* strict */ true);
|
const cache = new LowerMetadataCache({}, /* strict */ true);
|
||||||
const sourceFile = ts.createSourceFile(
|
const sourceFile = ts.createSourceFile(
|
||||||
'foo.ts', `
|
'foo.ts', `
|
||||||
|
|
Loading…
Reference in New Issue