fix(compiler): ensure JIT compilation of ɵɵngDeclarePipe() works (#40929)
Previously the compiler was not evaluating the JIT compilation of `ɵɵngDeclarePipe()` but there was no test to check it. PR Close #40929
This commit is contained in:
parent
e986a9787b
commit
3c24136b98
|
@ -54,7 +54,8 @@ export class CompilerFacadeImpl implements CompilerFacade {
|
||||||
angularCoreEnv: CoreEnvironment, sourceMapUrl: string,
|
angularCoreEnv: CoreEnvironment, sourceMapUrl: string,
|
||||||
declaration: R3DeclarePipeFacade): any {
|
declaration: R3DeclarePipeFacade): any {
|
||||||
const meta = convertDeclarePipeFacadeToMetadata(declaration);
|
const meta = convertDeclarePipeFacadeToMetadata(declaration);
|
||||||
return compilePipeFromMetadata(meta);
|
const res = compilePipeFromMetadata(meta);
|
||||||
|
return this.jitExpression(res.expression, angularCoreEnv, sourceMapUrl, []);
|
||||||
}
|
}
|
||||||
|
|
||||||
compileInjectable(
|
compileInjectable(
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
/**
|
||||||
|
* @license
|
||||||
|
* Copyright Google LLC All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Use of this source code is governed by an MIT-style license that can be
|
||||||
|
* found in the LICENSE file at https://angular.io/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
import {ɵɵngDeclarePipe} from '@angular/core';
|
||||||
|
import {PipeDef} from '../../../src/render3';
|
||||||
|
|
||||||
|
describe('Pipe declaration jit compilation', () => {
|
||||||
|
it('should compile a named Pipe declaration', () => {
|
||||||
|
const def = ɵɵngDeclarePipe({type: TestClass, name: 'foo'}) as PipeDef<TestClass>;
|
||||||
|
|
||||||
|
expect(def.type).toBe(TestClass);
|
||||||
|
expect(def.name).toEqual('foo');
|
||||||
|
expect(def.pure).toEqual(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should compile an impure Pipe declaration', () => {
|
||||||
|
const def = ɵɵngDeclarePipe({type: TestClass, name: 'foo', pure: false}) as PipeDef<TestClass>;
|
||||||
|
|
||||||
|
expect(def.type).toBe(TestClass);
|
||||||
|
expect(def.name).toEqual('foo');
|
||||||
|
expect(def.pure).toEqual(false);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
class TestClass {}
|
Loading…
Reference in New Issue