diff --git a/packages/compiler/src/jit_compiler_facade.ts b/packages/compiler/src/jit_compiler_facade.ts index 85aba35c8c..a1ec6553db 100644 --- a/packages/compiler/src/jit_compiler_facade.ts +++ b/packages/compiler/src/jit_compiler_facade.ts @@ -54,7 +54,8 @@ export class CompilerFacadeImpl implements CompilerFacade { angularCoreEnv: CoreEnvironment, sourceMapUrl: string, declaration: R3DeclarePipeFacade): any { const meta = convertDeclarePipeFacadeToMetadata(declaration); - return compilePipeFromMetadata(meta); + const res = compilePipeFromMetadata(meta); + return this.jitExpression(res.expression, angularCoreEnv, sourceMapUrl, []); } compileInjectable( diff --git a/packages/core/test/render3/jit/declare_pipe_spec.ts b/packages/core/test/render3/jit/declare_pipe_spec.ts new file mode 100644 index 0000000000..fb87726246 --- /dev/null +++ b/packages/core/test/render3/jit/declare_pipe_spec.ts @@ -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; + + 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; + + expect(def.type).toBe(TestClass); + expect(def.name).toEqual('foo'); + expect(def.pure).toEqual(false); + }); +}); + +class TestClass {}