fix(ivy): ignore empty bindings (#28059)

This update aligns Ivy behavior with ViewEngine related to empty bindings (for example <div [someProp]></div>): empty bindings are ignored.

PR Close #28059
This commit is contained in:
Andrew Kushnir
2019-01-10 15:54:48 -08:00
parent 9a128a8068
commit 9260b5e0b4
4 changed files with 51 additions and 21 deletions

View File

@ -120,6 +120,23 @@ describe('compiler compliance: bindings', () => {
const result = compile(files, angularFiles);
expectEmit(result.source, template, 'Incorrect interpolated property binding');
});
it('should ignore empty bindings', () => {
const files: MockDirectory = {
app: {
'example.ts': `
import {Component} from '@angular/core';
@Component({
selector: 'test',
template: '<div [someProp]></div>'
})
class FooCmp {}
`
}
};
const result = compile(files, angularFiles);
expect(result.source).not.toContain('i0.ɵelementProperty');
});
});
describe('host bindings', () => {

View File

@ -908,6 +908,21 @@ describe('ngtsc behavioral tests', () => {
'changeDetection must be a member of ChangeDetectionStrategy enum from @angular/core');
});
it('should ignore empty bindings', () => {
env.tsconfig();
env.write(`test.ts`, `
import {Component} from '@angular/core';
@Component({
selector: 'test',
template: '<div [someProp]></div>'
})
class FooCmp {}
`);
env.driveMain();
const jsContents = env.getContents('test.js');
expect(jsContents).not.toContain('i0.ɵelementProperty');
});
it('should correctly recognize local symbols', () => {
env.tsconfig();
env.write('module.ts', `