refactor(facade): Inline isBlank called with object-type argument (#11992)

This commit is contained in:
Alex Eagle 2016-09-30 09:26:53 -07:00 committed by Chuck Jazdzewski
parent e884f4854d
commit 0286956107
49 changed files with 119 additions and 137 deletions

View File

@ -9,7 +9,6 @@
import {Injector, OpaqueToken} from '@angular/core'; import {Injector, OpaqueToken} from '@angular/core';
import {Options} from './common_options'; import {Options} from './common_options';
import {isBlank} from './facade/lang';
export type PerfLogEvent = { export type PerfLogEvent = {
[key: string]: any [key: string]: any
@ -50,7 +49,7 @@ export abstract class WebDriverExtension {
delegate = extension; delegate = extension;
} }
}); });
if (isBlank(delegate)) { if (!delegate) {
throw new Error('Could not find a delegate for given capabilities!'); throw new Error('Could not find a delegate for given capabilities!');
} }
return delegate; return delegate;

View File

@ -52,7 +52,7 @@ export class IOsDriverExtension extends WebDriverExtension {
/** @internal */ /** @internal */
private _convertPerfRecordsToEvents(records: any[], events: PerfLogEvent[] = null) { private _convertPerfRecordsToEvents(records: any[], events: PerfLogEvent[] = null) {
if (isBlank(events)) { if (!events) {
events = []; events = [];
} }
records.forEach((record) => { records.forEach((record) => {

View File

@ -11,7 +11,7 @@ import {AsyncTestCompleter, beforeEach, describe, expect, inject, it} from '@ang
import {Metric, Options, PerfLogEvent, PerfLogFeatures, PerflogMetric, ReflectiveInjector, WebDriverExtension} from '../../index'; import {Metric, Options, PerfLogEvent, PerfLogFeatures, PerflogMetric, ReflectiveInjector, WebDriverExtension} from '../../index';
import {StringMapWrapper} from '../../src/facade/collection'; import {StringMapWrapper} from '../../src/facade/collection';
import {isBlank, isPresent} from '../../src/facade/lang'; import {isPresent} from '../../src/facade/lang';
import {TraceEventFactory} from '../trace_event_factory'; import {TraceEventFactory} from '../trace_event_factory';
export function main() { export function main() {
@ -28,11 +28,11 @@ export function main() {
requestCount?: boolean requestCount?: boolean
} = {}): Metric { } = {}): Metric {
commandLog = []; commandLog = [];
if (isBlank(perfLogFeatures)) { if (!perfLogFeatures) {
perfLogFeatures = perfLogFeatures =
new PerfLogFeatures({render: true, gc: true, frameCapture: true, userTiming: true}); new PerfLogFeatures({render: true, gc: true, frameCapture: true, userTiming: true});
} }
if (isBlank(microMetrics)) { if (!microMetrics) {
microMetrics = {}; microMetrics = {};
} }
var providers: Provider[] = [ var providers: Provider[] = [

View File

@ -10,7 +10,6 @@ import {Provider, ReflectiveInjector} from '@angular/core';
import {AsyncTestCompleter, describe, expect, inject, it} from '@angular/core/testing/testing_internal'; import {AsyncTestCompleter, describe, expect, inject, it} from '@angular/core/testing/testing_internal';
import {Options, PerfLogEvent, PerfLogFeatures, UserMetric, WebDriverAdapter} from '../../index'; import {Options, PerfLogEvent, PerfLogFeatures, UserMetric, WebDriverAdapter} from '../../index';
import {isBlank} from '../../src/facade/lang';
export function main() { export function main() {
var wdAdapter: MockDriverAdapter; var wdAdapter: MockDriverAdapter;
@ -18,11 +17,11 @@ export function main() {
function createMetric( function createMetric(
perfLogs: PerfLogEvent[], perfLogFeatures: PerfLogFeatures, perfLogs: PerfLogEvent[], perfLogFeatures: PerfLogFeatures,
{userMetrics}: {userMetrics?: {[key: string]: string}} = {}): UserMetric { {userMetrics}: {userMetrics?: {[key: string]: string}} = {}): UserMetric {
if (isBlank(perfLogFeatures)) { if (!perfLogFeatures) {
perfLogFeatures = perfLogFeatures =
new PerfLogFeatures({render: true, gc: true, frameCapture: true, userTiming: true}); new PerfLogFeatures({render: true, gc: true, frameCapture: true, userTiming: true});
} }
if (isBlank(userMetrics)) { if (!userMetrics) {
userMetrics = {}; userMetrics = {};
} }
wdAdapter = new MockDriverAdapter(); wdAdapter = new MockDriverAdapter();

View File

@ -25,7 +25,7 @@ export function main() {
metrics?: {[key: string]: any} metrics?: {[key: string]: any}
}) { }) {
log = []; log = [];
if (isBlank(descriptions)) { if (!descriptions) {
descriptions = []; descriptions = [];
} }
if (isBlank(sampleId)) { if (isBlank(sampleId)) {

View File

@ -9,7 +9,6 @@
import {AsyncTestCompleter, describe, expect, inject, it} from '@angular/core/testing/testing_internal'; import {AsyncTestCompleter, describe, expect, inject, it} from '@angular/core/testing/testing_internal';
import {Injector, Metric, Options, ReflectiveInjector, Runner, SampleDescription, SampleState, Sampler, Validator, WebDriverAdapter} from '../index'; import {Injector, Metric, Options, ReflectiveInjector, Runner, SampleDescription, SampleState, Sampler, Validator, WebDriverAdapter} from '../index';
import {isBlank} from '../src/facade/lang';
export function main() { export function main() {
describe('runner', () => { describe('runner', () => {
@ -17,7 +16,7 @@ export function main() {
var runner: Runner; var runner: Runner;
function createRunner(defaultProviders: any[] = null): Runner { function createRunner(defaultProviders: any[] = null): Runner {
if (isBlank(defaultProviders)) { if (!defaultProviders) {
defaultProviders = []; defaultProviders = [];
} }
runner = new Runner([ runner = new Runner([

View File

@ -26,10 +26,10 @@ export function main() {
execute?: any execute?: any
} = {}) { } = {}) {
var time = 1000; var time = 1000;
if (isBlank(metric)) { if (!metric) {
metric = new MockMetric([]); metric = new MockMetric([]);
} }
if (isBlank(reporter)) { if (!reporter) {
reporter = new MockReporter([]); reporter = new MockReporter([]);
} }
if (isBlank(driver)) { if (isBlank(driver)) {

View File

@ -35,7 +35,7 @@ export function main() {
function createExtension( function createExtension(
perfRecords: any[] = null, userAgent: string = null, perfRecords: any[] = null, userAgent: string = null,
messageMethod = 'Tracing.dataCollected'): WebDriverExtension { messageMethod = 'Tracing.dataCollected'): WebDriverExtension {
if (isBlank(perfRecords)) { if (!perfRecords) {
perfRecords = []; perfRecords = [];
} }
if (isBlank(userAgent)) { if (isBlank(userAgent)) {

View File

@ -9,7 +9,7 @@
import {AsyncTestCompleter, describe, expect, inject, it} from '@angular/core/testing/testing_internal'; import {AsyncTestCompleter, describe, expect, inject, it} from '@angular/core/testing/testing_internal';
import {IOsDriverExtension, ReflectiveInjector, WebDriverAdapter, WebDriverExtension} from '../../index'; import {IOsDriverExtension, ReflectiveInjector, WebDriverAdapter, WebDriverExtension} from '../../index';
import {Json, isBlank} from '../../src/facade/lang'; import {Json} from '../../src/facade/lang';
import {TraceEventFactory} from '../trace_event_factory'; import {TraceEventFactory} from '../trace_event_factory';
export function main() { export function main() {
@ -20,7 +20,7 @@ export function main() {
var normEvents = new TraceEventFactory('timeline', 'pid0'); var normEvents = new TraceEventFactory('timeline', 'pid0');
function createExtension(perfRecords: any[] = null): WebDriverExtension { function createExtension(perfRecords: any[] = null): WebDriverExtension {
if (isBlank(perfRecords)) { if (!perfRecords) {
perfRecords = []; perfRecords = [];
} }
log = []; log = [];
@ -156,7 +156,7 @@ function timeEndRecord(name: string, time: number) {
} }
function durationRecord(type: string, startTime: number, endTime: number, children: any[] = null) { function durationRecord(type: string, startTime: number, endTime: number, children: any[] = null) {
if (isBlank(children)) { if (!children) {
children = []; children = [];
} }
return {'type': type, 'startTime': startTime, 'endTime': endTime, 'children': children}; return {'type': type, 'startTime': startTime, 'endTime': endTime, 'children': children};

View File

@ -13,7 +13,6 @@ import {getDOM} from '@angular/platform-browser/src/dom/dom_adapter';
import {browserDetection} from '@angular/platform-browser/testing/browser_util'; import {browserDetection} from '@angular/platform-browser/testing/browser_util';
import {EventEmitter} from '../../src/facade/async'; import {EventEmitter} from '../../src/facade/async';
import {isBlank} from '../../src/facade/lang';
import {SpyChangeDetectorRef} from '../spies'; import {SpyChangeDetectorRef} from '../spies';
export function main() { export function main() {
@ -112,7 +111,7 @@ export function main() {
var promise: Promise<any>; var promise: Promise<any>;
var ref: SpyChangeDetectorRef; var ref: SpyChangeDetectorRef;
// adds longer timers for passing tests in IE // adds longer timers for passing tests in IE
var timer = (!isBlank(getDOM()) && browserDetection.isIE) ? 50 : 10; var timer = (getDOM() && browserDetection.isIE) ? 50 : 10;
beforeEach(() => { beforeEach(() => {
promise = new Promise((res, rej) => { promise = new Promise((res, rej) => {

View File

@ -454,7 +454,7 @@ class MockReflectorHost implements StaticReflectorHost {
getStaticSymbol(declarationFile: string, name: string, members?: string[]): StaticSymbol { getStaticSymbol(declarationFile: string, name: string, members?: string[]): StaticSymbol {
var cacheKey = `${declarationFile}:${name}${members?'.'+members.join('.'):''}`; var cacheKey = `${declarationFile}:${name}${members?'.'+members.join('.'):''}`;
var result = this.staticTypeCache.get(cacheKey); var result = this.staticTypeCache.get(cacheKey);
if (isBlank(result)) { if (!result) {
result = new StaticSymbol(declarationFile, name, members); result = new StaticSymbol(declarationFile, name, members);
this.staticTypeCache.set(cacheKey, result); this.staticTypeCache.set(cacheKey, result);
} }

View File

@ -7,7 +7,7 @@
*/ */
import {StringMapWrapper} from '../facade/collection'; import {StringMapWrapper} from '../facade/collection';
import {isBlank, isPresent} from '../facade/lang'; import {isPresent} from '../facade/lang';
import {Identifiers, resolveIdentifier} from '../identifiers'; import {Identifiers, resolveIdentifier} from '../identifiers';
import * as o from '../output/output_ast'; import * as o from '../output/output_ast';
import {ANY_STATE, DEFAULT_STATE, EMPTY_STATE} from '../private_import_core'; import {ANY_STATE, DEFAULT_STATE, EMPTY_STATE} from '../private_import_core';
@ -323,7 +323,7 @@ class _AnimationBuilderStateMap {
get states() { return this._states; } get states() { return this._states; }
registerState(name: string, value: {[prop: string]: string | number} = null): void { registerState(name: string, value: {[prop: string]: string | number} = null): void {
var existingEntry = this._states[name]; var existingEntry = this._states[name];
if (isBlank(existingEntry)) { if (!existingEntry) {
this._states[name] = value; this._states[name] = value;
} }
} }

View File

@ -123,7 +123,7 @@ class _TreeBuilder {
// read = // read =
while (this._peek.type === lex.TokenType.EXPANSION_CASE_VALUE) { while (this._peek.type === lex.TokenType.EXPANSION_CASE_VALUE) {
let expCase = this._parseExpansionCase(); let expCase = this._parseExpansionCase();
if (isBlank(expCase)) return; // error if (!expCase) return; // error
cases.push(expCase); cases.push(expCase);
} }
@ -154,7 +154,7 @@ class _TreeBuilder {
const start = this._advance(); const start = this._advance();
const exp = this._collectExpansionExpTokens(start); const exp = this._collectExpansionExpTokens(start);
if (isBlank(exp)) return null; if (!exp) return null;
const end = this._advance(); const end = this._advance();
exp.push(new lex.Token(lex.TokenType.EOF, [], end.sourceSpan)); exp.push(new lex.Token(lex.TokenType.EOF, [], end.sourceSpan));

View File

@ -9,7 +9,7 @@
import {Injectable} from '@angular/core'; import {Injectable} from '@angular/core';
import {CompileDiDependencyMetadata, CompileIdentifierMetadata, CompileNgModuleMetadata, CompileProviderMetadata, CompileTokenMetadata} from './compile_metadata'; import {CompileDiDependencyMetadata, CompileIdentifierMetadata, CompileNgModuleMetadata, CompileProviderMetadata, CompileTokenMetadata} from './compile_metadata';
import {isBlank, isPresent} from './facade/lang'; import {isPresent} from './facade/lang';
import {Identifiers, resolveIdentifier, resolveIdentifierToken} from './identifiers'; import {Identifiers, resolveIdentifier, resolveIdentifierToken} from './identifiers';
import * as o from './output/output_ast'; import * as o from './output/output_ast';
import {convertValueToOutputAst} from './output/value_util'; import {convertValueToOutputAst} from './output/value_util';
@ -190,7 +190,7 @@ class _InjectorBuilder {
resolvedProviderValueExpr = providerValueExpressions[0]; resolvedProviderValueExpr = providerValueExpressions[0];
type = providerValueExpressions[0].type; type = providerValueExpressions[0].type;
} }
if (isBlank(type)) { if (!type) {
type = o.DYNAMIC_TYPE; type = o.DYNAMIC_TYPE;
} }
if (isEager) { if (isEager) {
@ -223,11 +223,11 @@ class _InjectorBuilder {
resolveIdentifierToken(Identifiers.ComponentFactoryResolver).reference)) { resolveIdentifierToken(Identifiers.ComponentFactoryResolver).reference)) {
result = o.THIS_EXPR; result = o.THIS_EXPR;
} }
if (isBlank(result)) { if (!result) {
result = this._instances.get(dep.token.reference); result = this._instances.get(dep.token.reference);
} }
} }
if (isBlank(result)) { if (!result) {
var args = [createDiTokenExpression(dep.token)]; var args = [createDiTokenExpression(dep.token)];
if (dep.isOptional) { if (dep.isOptional) {
args.push(o.NULL_EXPR); args.push(o.NULL_EXPR);

View File

@ -8,7 +8,7 @@
import {CompileIdentifierMetadata} from '../compile_metadata'; import {CompileIdentifierMetadata} from '../compile_metadata';
import {isBlank, isPresent, isString} from '../facade/lang'; import {isPresent, isString} from '../facade/lang';
@ -19,7 +19,7 @@ export enum TypeModifier {
export abstract class Type { export abstract class Type {
constructor(public modifiers: TypeModifier[] = null) { constructor(public modifiers: TypeModifier[] = null) {
if (isBlank(modifiers)) { if (!modifiers) {
this.modifiers = []; this.modifiers = [];
} }
} }
@ -462,7 +462,7 @@ export enum StmtModifier {
export abstract class Statement { export abstract class Statement {
constructor(public modifiers: StmtModifier[] = null) { constructor(public modifiers: StmtModifier[] = null) {
if (isBlank(modifiers)) { if (!modifiers) {
this.modifiers = []; this.modifiers = [];
} }
} }
@ -517,7 +517,7 @@ export class ReturnStatement extends Statement {
export class AbstractClassPart { export class AbstractClassPart {
constructor(public type: Type = null, public modifiers: StmtModifier[]) { constructor(public type: Type = null, public modifiers: StmtModifier[]) {
if (isBlank(modifiers)) { if (!modifiers) {
this.modifiers = []; this.modifiers = [];
} }
} }

View File

@ -136,8 +136,7 @@ export class ProviderElementContext {
requestingProviderType: ProviderAstType, token: CompileTokenMetadata, requestingProviderType: ProviderAstType, token: CompileTokenMetadata,
eager: boolean): ProviderAst { eager: boolean): ProviderAst {
var resolvedProvider = this._allProviders.get(token.reference); var resolvedProvider = this._allProviders.get(token.reference);
if (isBlank(resolvedProvider) || if (!resolvedProvider || ((requestingProviderType === ProviderAstType.Directive ||
((requestingProviderType === ProviderAstType.Directive ||
requestingProviderType === ProviderAstType.PublicService) && requestingProviderType === ProviderAstType.PublicService) &&
resolvedProvider.providerType === ProviderAstType.PrivateService) || resolvedProvider.providerType === ProviderAstType.PrivateService) ||
((requestingProviderType === ProviderAstType.PrivateService || ((requestingProviderType === ProviderAstType.PrivateService ||
@ -239,12 +238,12 @@ export class ProviderElementContext {
result = this._getLocalDependency(requestingProviderType, dep, eager); result = this._getLocalDependency(requestingProviderType, dep, eager);
} }
if (dep.isSelf) { if (dep.isSelf) {
if (isBlank(result) && dep.isOptional) { if (!result && dep.isOptional) {
result = new CompileDiDependencyMetadata({isValue: true, value: null}); result = new CompileDiDependencyMetadata({isValue: true, value: null});
} }
} else { } else {
// check parent elements // check parent elements
while (isBlank(result) && isPresent(currElement._parent)) { while (!result && isPresent(currElement._parent)) {
var prevElement = currElement; var prevElement = currElement;
currElement = currElement._parent; currElement = currElement._parent;
if (prevElement._isViewRoot) { if (prevElement._isViewRoot) {
@ -253,7 +252,7 @@ export class ProviderElementContext {
result = currElement._getLocalDependency(ProviderAstType.PublicService, dep, currEager); result = currElement._getLocalDependency(ProviderAstType.PublicService, dep, currEager);
} }
// check @Host restriction // check @Host restriction
if (isBlank(result)) { if (!result) {
if (!dep.isHost || this.viewContext.component.type.isHost || if (!dep.isHost || this.viewContext.component.type.isHost ||
this.viewContext.component.type.reference === dep.token.reference || this.viewContext.component.type.reference === dep.token.reference ||
isPresent(this.viewContext.viewProviders.get(dep.token.reference))) { isPresent(this.viewContext.viewProviders.get(dep.token.reference))) {
@ -265,7 +264,7 @@ export class ProviderElementContext {
} }
} }
} }
if (isBlank(result)) { if (!result) {
this.viewContext.errors.push( this.viewContext.errors.push(
new ProviderError(`No provider for ${dep.token.name}`, this._sourceSpan)); new ProviderError(`No provider for ${dep.token.name}`, this._sourceSpan));
} }
@ -311,7 +310,7 @@ export class NgModuleProviderAnalyzer {
private _getOrCreateLocalProvider(token: CompileTokenMetadata, eager: boolean): ProviderAst { private _getOrCreateLocalProvider(token: CompileTokenMetadata, eager: boolean): ProviderAst {
var resolvedProvider = this._allProviders.get(token.reference); var resolvedProvider = this._allProviders.get(token.reference);
if (isBlank(resolvedProvider)) { if (!resolvedProvider) {
return null; return null;
} }
var transformedProviderAst = this._transformedProviders.get(token.reference); var transformedProviderAst = this._transformedProviders.get(token.reference);
@ -414,7 +413,7 @@ function _normalizeProviders(
providers: Array<CompileProviderMetadata|CompileTypeMetadata|any[]>, providers: Array<CompileProviderMetadata|CompileTypeMetadata|any[]>,
sourceSpan: ParseSourceSpan, targetErrors: ParseError[], sourceSpan: ParseSourceSpan, targetErrors: ParseError[],
targetProviders: CompileProviderMetadata[] = null): CompileProviderMetadata[] { targetProviders: CompileProviderMetadata[] = null): CompileProviderMetadata[] {
if (isBlank(targetProviders)) { if (!targetProviders) {
targetProviders = []; targetProviders = [];
} }
if (isPresent(providers)) { if (isPresent(providers)) {
@ -479,7 +478,7 @@ function _resolveProviders(
`Mixing multi and non multi provider is not possible for token ${resolvedProvider.token.name}`, `Mixing multi and non multi provider is not possible for token ${resolvedProvider.token.name}`,
sourceSpan)); sourceSpan));
} }
if (isBlank(resolvedProvider)) { if (!resolvedProvider) {
const lifecycleHooks = const lifecycleHooks =
provider.token.identifier && provider.token.identifier instanceof CompileTypeMetadata ? provider.token.identifier && provider.token.identifier instanceof CompileTypeMetadata ?
provider.token.identifier.lifecycleHooks : provider.token.identifier.lifecycleHooks :
@ -530,7 +529,7 @@ function _getContentQueries(directives: CompileDirectiveMetadata[]):
function _addQueryToTokenMap(map: Map<any, CompileQueryMetadata[]>, query: CompileQueryMetadata) { function _addQueryToTokenMap(map: Map<any, CompileQueryMetadata[]>, query: CompileQueryMetadata) {
query.selectors.forEach((token: CompileTokenMetadata) => { query.selectors.forEach((token: CompileTokenMetadata) => {
var entry = map.get(token.reference); var entry = map.get(token.reference);
if (isBlank(entry)) { if (!entry) {
entry = []; entry = [];
map.set(token.reference, entry); map.set(token.reference, entry);
} }

View File

@ -12,7 +12,7 @@ import {AnimationParser} from './animation/animation_parser';
import {CompileDirectiveMetadata, CompileIdentifierMetadata, CompileNgModuleMetadata, CompilePipeMetadata, ProviderMeta, createHostComponentMeta} from './compile_metadata'; import {CompileDirectiveMetadata, CompileIdentifierMetadata, CompileNgModuleMetadata, CompilePipeMetadata, ProviderMeta, createHostComponentMeta} from './compile_metadata';
import {CompilerConfig} from './config'; import {CompilerConfig} from './config';
import {DirectiveNormalizer} from './directive_normalizer'; import {DirectiveNormalizer} from './directive_normalizer';
import {isBlank, stringify} from './facade/lang'; import {stringify} from './facade/lang';
import {CompileMetadataResolver} from './metadata_resolver'; import {CompileMetadataResolver} from './metadata_resolver';
import {NgModuleCompiler} from './ng_module_compiler'; import {NgModuleCompiler} from './ng_module_compiler';
import * as ir from './output/output_ast'; import * as ir from './output/output_ast';
@ -191,7 +191,7 @@ export class RuntimeCompiler implements Compiler {
private _createCompiledHostTemplate(compType: Type<any>): CompiledTemplate { private _createCompiledHostTemplate(compType: Type<any>): CompiledTemplate {
var compiledTemplate = this._compiledHostTemplateCache.get(compType); var compiledTemplate = this._compiledHostTemplateCache.get(compType);
if (isBlank(compiledTemplate)) { if (!compiledTemplate) {
var compMeta = this._metadataResolver.getDirectiveMetadata(compType); var compMeta = this._metadataResolver.getDirectiveMetadata(compType);
assertComponent(compMeta); assertComponent(compMeta);
var hostMeta = createHostComponentMeta(compMeta); var hostMeta = createHostComponentMeta(compMeta);
@ -206,7 +206,7 @@ export class RuntimeCompiler implements Compiler {
private _createCompiledTemplate( private _createCompiledTemplate(
compMeta: CompileDirectiveMetadata, ngModule: CompileNgModuleMetadata): CompiledTemplate { compMeta: CompileDirectiveMetadata, ngModule: CompileNgModuleMetadata): CompiledTemplate {
var compiledTemplate = this._compiledTemplateCache.get(compMeta.type.reference); var compiledTemplate = this._compiledTemplateCache.get(compMeta.type.reference);
if (isBlank(compiledTemplate)) { if (!compiledTemplate) {
assertComponent(compMeta); assertComponent(compMeta);
compiledTemplate = new CompiledTemplate( compiledTemplate = new CompiledTemplate(
false, compMeta.selector, compMeta.type, ngModule.transitiveModule.directives, false, compMeta.selector, compMeta.type, ngModule.transitiveModule.directives,

View File

@ -216,7 +216,7 @@ export class SelectorMatcher {
if (isTerminal) { if (isTerminal) {
var terminalMap = matcher._attrValueMap; var terminalMap = matcher._attrValueMap;
var terminalValuesMap = terminalMap.get(attrName); var terminalValuesMap = terminalMap.get(attrName);
if (isBlank(terminalValuesMap)) { if (!terminalValuesMap) {
terminalValuesMap = new Map<string, SelectorContext[]>(); terminalValuesMap = new Map<string, SelectorContext[]>();
terminalMap.set(attrName, terminalValuesMap); terminalMap.set(attrName, terminalValuesMap);
} }
@ -224,7 +224,7 @@ export class SelectorMatcher {
} else { } else {
var parttialMap = matcher._attrValuePartialMap; var parttialMap = matcher._attrValuePartialMap;
var partialValuesMap = parttialMap.get(attrName); var partialValuesMap = parttialMap.get(attrName);
if (isBlank(partialValuesMap)) { if (!partialValuesMap) {
partialValuesMap = new Map<string, SelectorMatcher>(); partialValuesMap = new Map<string, SelectorMatcher>();
parttialMap.set(attrName, partialValuesMap); parttialMap.set(attrName, partialValuesMap);
} }
@ -237,7 +237,7 @@ export class SelectorMatcher {
private _addTerminal( private _addTerminal(
map: Map<string, SelectorContext[]>, name: string, selectable: SelectorContext) { map: Map<string, SelectorContext[]>, name: string, selectable: SelectorContext) {
var terminalList = map.get(name); var terminalList = map.get(name);
if (isBlank(terminalList)) { if (!terminalList) {
terminalList = []; terminalList = [];
map.set(name, terminalList); map.set(name, terminalList);
} }
@ -246,7 +246,7 @@ export class SelectorMatcher {
private _addPartial(map: Map<string, SelectorMatcher>, name: string): SelectorMatcher { private _addPartial(map: Map<string, SelectorMatcher>, name: string): SelectorMatcher {
var matcher = map.get(name); var matcher = map.get(name);
if (isBlank(matcher)) { if (!matcher) {
matcher = new SelectorMatcher(); matcher = new SelectorMatcher();
map.set(name, matcher); map.set(name, matcher);
} }
@ -316,7 +316,7 @@ export class SelectorMatcher {
_matchTerminal( _matchTerminal(
map: Map<string, SelectorContext[]>, name: string, cssSelector: CssSelector, map: Map<string, SelectorContext[]>, name: string, cssSelector: CssSelector,
matchedCallback: (c: CssSelector, a: any) => void): boolean { matchedCallback: (c: CssSelector, a: any) => void): boolean {
if (isBlank(map) || isBlank(name)) { if (!map || isBlank(name)) {
return false; return false;
} }
@ -325,7 +325,7 @@ export class SelectorMatcher {
if (isPresent(starSelectables)) { if (isPresent(starSelectables)) {
selectables = selectables.concat(starSelectables); selectables = selectables.concat(starSelectables);
} }
if (isBlank(selectables)) { if (!selectables) {
return false; return false;
} }
var selectable: SelectorContext; var selectable: SelectorContext;
@ -341,11 +341,11 @@ export class SelectorMatcher {
_matchPartial( _matchPartial(
map: Map<string, SelectorMatcher>, name: string, cssSelector: CssSelector, map: Map<string, SelectorMatcher>, name: string, cssSelector: CssSelector,
matchedCallback: (c: CssSelector, a: any) => void): boolean { matchedCallback: (c: CssSelector, a: any) => void): boolean {
if (isBlank(map) || isBlank(name)) { if (!map || isBlank(name)) {
return false; return false;
} }
var nestedSelector = map.get(name); var nestedSelector = map.get(name);
if (isBlank(nestedSelector)) { if (!nestedSelector) {
return false; return false;
} }
// TODO(perf): get rid of recursion and measure again // TODO(perf): get rid of recursion and measure again
@ -374,13 +374,11 @@ export class SelectorContext {
finalize(cssSelector: CssSelector, callback: (c: CssSelector, a: any) => void): boolean { finalize(cssSelector: CssSelector, callback: (c: CssSelector, a: any) => void): boolean {
var result = true; var result = true;
if (this.notSelectors.length > 0 && if (this.notSelectors.length > 0 && (!this.listContext || !this.listContext.alreadyMatched)) {
(isBlank(this.listContext) || !this.listContext.alreadyMatched)) {
var notMatcher = SelectorMatcher.createNotMatcher(this.notSelectors); var notMatcher = SelectorMatcher.createNotMatcher(this.notSelectors);
result = !notMatcher.match(cssSelector, null); result = !notMatcher.match(cssSelector, null);
} }
if (result && isPresent(callback) && if (result && isPresent(callback) && (!this.listContext || !this.listContext.alreadyMatched)) {
(isBlank(this.listContext) || !this.listContext.alreadyMatched)) {
if (isPresent(this.listContext)) { if (isPresent(this.listContext)) {
this.listContext.alreadyMatched = true; this.listContext.alreadyMatched = true;
} }

View File

@ -12,7 +12,7 @@ import {CompileDirectiveMetadata, CompilePipeMetadata, CompileTemplateMetadata,
import {AST, ASTWithSource, BindingPipe, EmptyExpr, Interpolation, ParserError, RecursiveAstVisitor, TemplateBinding} from '../expression_parser/ast'; import {AST, ASTWithSource, BindingPipe, EmptyExpr, Interpolation, ParserError, RecursiveAstVisitor, TemplateBinding} from '../expression_parser/ast';
import {Parser} from '../expression_parser/parser'; import {Parser} from '../expression_parser/parser';
import {StringMapWrapper} from '../facade/collection'; import {StringMapWrapper} from '../facade/collection';
import {isBlank, isPresent, isString} from '../facade/lang'; import {isPresent, isString} from '../facade/lang';
import {I18NHtmlParser} from '../i18n/i18n_html_parser'; import {I18NHtmlParser} from '../i18n/i18n_html_parser';
import {Identifiers, identifierToken, resolveIdentifierToken} from '../identifiers'; import {Identifiers, identifierToken, resolveIdentifierToken} from '../identifiers';
import * as html from '../ml_parser/ast'; import * as html from '../ml_parser/ast';
@ -869,7 +869,7 @@ class TemplateParseVisitor implements html.Visitor {
const boundPropsByName = new Map<string, BoundElementOrDirectiveProperty>(); const boundPropsByName = new Map<string, BoundElementOrDirectiveProperty>();
boundProps.forEach(boundProp => { boundProps.forEach(boundProp => {
const prevValue = boundPropsByName.get(boundProp.name); const prevValue = boundPropsByName.get(boundProp.name);
if (isBlank(prevValue) || prevValue.isLiteral) { if (!prevValue || prevValue.isLiteral) {
// give [a]="b" a higher precedence than a="b" on the same element // give [a]="b" a higher precedence than a="b" on the same element
boundPropsByName.set(boundProp.name, boundProp); boundPropsByName.set(boundProp.name, boundProp);
} }
@ -900,7 +900,7 @@ class TemplateParseVisitor implements html.Visitor {
}); });
props.forEach((prop: BoundElementOrDirectiveProperty) => { props.forEach((prop: BoundElementOrDirectiveProperty) => {
if (!prop.isLiteral && isBlank(boundDirectivePropsIndex.get(prop.name))) { if (!prop.isLiteral && !boundDirectivePropsIndex.get(prop.name)) {
boundElementProps.push(this._createElementPropertyAst( boundElementProps.push(this._createElementPropertyAst(
elementName, prop.name, prop.expression, prop.sourceSpan)); elementName, prop.name, prop.expression, prop.sourceSpan));
} }

View File

@ -9,7 +9,7 @@
import {CompileDiDependencyMetadata, CompileDirectiveMetadata, CompileIdentifierMetadata, CompileProviderMetadata, CompileQueryMetadata, CompileTokenMetadata} from '../compile_metadata'; import {CompileDiDependencyMetadata, CompileDirectiveMetadata, CompileIdentifierMetadata, CompileProviderMetadata, CompileQueryMetadata, CompileTokenMetadata} from '../compile_metadata';
import {ListWrapper, MapWrapper, StringMapWrapper} from '../facade/collection'; import {ListWrapper, MapWrapper, StringMapWrapper} from '../facade/collection';
import {isBlank, isPresent} from '../facade/lang'; import {isPresent} from '../facade/lang';
import {Identifiers, identifierToken, resolveIdentifier, resolveIdentifierToken} from '../identifiers'; import {Identifiers, identifierToken, resolveIdentifier, resolveIdentifierToken} from '../identifiers';
import * as o from '../output/output_ast'; import * as o from '../output/output_ast';
import {convertValueToOutputAst} from '../output/value_util'; import {convertValueToOutputAst} from '../output/value_util';
@ -27,7 +27,7 @@ export class CompileNode {
public parent: CompileElement, public view: CompileView, public nodeIndex: number, public parent: CompileElement, public view: CompileView, public nodeIndex: number,
public renderNode: o.Expression, public sourceAst: TemplateAst) {} public renderNode: o.Expression, public sourceAst: TemplateAst) {}
isNull(): boolean { return isBlank(this.renderNode); } isNull(): boolean { return !this.renderNode; }
isRootElement(): boolean { return this.view != this.parent.view; } isRootElement(): boolean { return this.view != this.parent.view; }
} }
@ -313,12 +313,12 @@ export class CompileElement extends CompileNode {
requestingProviderType: ProviderAstType, dep: CompileDiDependencyMetadata): o.Expression { requestingProviderType: ProviderAstType, dep: CompileDiDependencyMetadata): o.Expression {
var result: o.Expression = null; var result: o.Expression = null;
// constructor content query // constructor content query
if (isBlank(result) && isPresent(dep.query)) { if (!result && isPresent(dep.query)) {
result = this._addQuery(dep.query, null).queryList; result = this._addQuery(dep.query, null).queryList;
} }
// constructor view query // constructor view query
if (isBlank(result) && isPresent(dep.viewQuery)) { if (!result && isPresent(dep.viewQuery)) {
result = createQueryList( result = createQueryList(
dep.viewQuery, null, dep.viewQuery, null,
`_viewQuery_${dep.viewQuery.selectors[0].name}_${this.nodeIndex}_${this._componentConstructorViewQueryLists.length}`, `_viewQuery_${dep.viewQuery.selectors[0].name}_${this.nodeIndex}_${this._componentConstructorViewQueryLists.length}`,
@ -328,7 +328,7 @@ export class CompileElement extends CompileNode {
if (isPresent(dep.token)) { if (isPresent(dep.token)) {
// access builtins with special visibility // access builtins with special visibility
if (isBlank(result)) { if (!result) {
if (dep.token.reference === if (dep.token.reference ===
resolveIdentifierToken(Identifiers.ChangeDetectorRef).reference) { resolveIdentifierToken(Identifiers.ChangeDetectorRef).reference) {
if (requestingProviderType === ProviderAstType.Component) { if (requestingProviderType === ProviderAstType.Component) {
@ -339,7 +339,7 @@ export class CompileElement extends CompileNode {
} }
} }
// access regular providers on the element // access regular providers on the element
if (isBlank(result)) { if (!result) {
let resolvedProvider = this._resolvedProviders.get(dep.token.reference); let resolvedProvider = this._resolvedProviders.get(dep.token.reference);
// don't allow directives / public services to access private services. // don't allow directives / public services to access private services.
// only components and private services can access private services. // only components and private services can access private services.
@ -361,20 +361,20 @@ export class CompileElement extends CompileNode {
if (dep.isValue) { if (dep.isValue) {
result = o.literal(dep.value); result = o.literal(dep.value);
} }
if (isBlank(result) && !dep.isSkipSelf) { if (!result && !dep.isSkipSelf) {
result = this._getLocalDependency(requestingProviderType, dep); result = this._getLocalDependency(requestingProviderType, dep);
} }
// check parent elements // check parent elements
while (isBlank(result) && !currElement.parent.isNull()) { while (!result && !currElement.parent.isNull()) {
currElement = currElement.parent; currElement = currElement.parent;
result = currElement._getLocalDependency( result = currElement._getLocalDependency(
ProviderAstType.PublicService, new CompileDiDependencyMetadata({token: dep.token})); ProviderAstType.PublicService, new CompileDiDependencyMetadata({token: dep.token}));
} }
if (isBlank(result)) { if (!result) {
result = injectFromViewParentInjector(dep.token, dep.isOptional); result = injectFromViewParentInjector(dep.token, dep.isOptional);
} }
if (isBlank(result)) { if (!result) {
result = o.NULL_EXPR; result = o.NULL_EXPR;
} }
return getPropertyInView(result, this.view, currElement.view); return getPropertyInView(result, this.view, currElement.view);
@ -411,7 +411,7 @@ function createProviderProperty(
resolvedProviderValueExpr = providerValueExpressions[0]; resolvedProviderValueExpr = providerValueExpressions[0];
type = providerValueExpressions[0].type; type = providerValueExpressions[0].type;
} }
if (isBlank(type)) { if (!type) {
type = o.DYNAMIC_TYPE; type = o.DYNAMIC_TYPE;
} }
if (isEager) { if (isEager) {

View File

@ -8,7 +8,6 @@
import {CompilePipeMetadata} from '../compile_metadata'; import {CompilePipeMetadata} from '../compile_metadata';
import {isBlank} from '../facade/lang';
import {Identifiers, resolveIdentifier, resolveIdentifierToken} from '../identifiers'; import {Identifiers, resolveIdentifier, resolveIdentifierToken} from '../identifiers';
import * as o from '../output/output_ast'; import * as o from '../output/output_ast';
@ -23,7 +22,7 @@ export class CompilePipe {
if (meta.pure) { if (meta.pure) {
// pure pipes live on the component view // pure pipes live on the component view
pipe = compView.purePipes.get(name); pipe = compView.purePipes.get(name);
if (isBlank(pipe)) { if (!pipe) {
pipe = new CompilePipe(compView, meta); pipe = new CompilePipe(compView, meta);
compView.purePipes.set(name, pipe); compView.purePipes.set(name, pipe);
compView.pipes.push(pipe); compView.pipes.push(pipe);
@ -85,7 +84,7 @@ function _findPipeMeta(view: CompileView, name: string): CompilePipeMetadata {
break; break;
} }
} }
if (isBlank(pipeMeta)) { if (!pipeMeta) {
throw new Error( throw new Error(
`Illegal state: Could not find pipe ${name} although the parser should have detected this error!`); `Illegal state: Could not find pipe ${name} although the parser should have detected this error!`);
} }

View File

@ -8,7 +8,7 @@
import {CompileQueryMetadata} from '../compile_metadata'; import {CompileQueryMetadata} from '../compile_metadata';
import {ListWrapper} from '../facade/collection'; import {ListWrapper} from '../facade/collection';
import {isBlank, isPresent} from '../facade/lang'; import {isPresent} from '../facade/lang';
import {Identifiers, resolveIdentifier} from '../identifiers'; import {Identifiers, resolveIdentifier} from '../identifiers';
import * as o from '../output/output_ast'; import * as o from '../output/output_ast';
@ -129,7 +129,7 @@ export function createQueryList(
export function addQueryToTokenMap(map: Map<any, CompileQuery[]>, query: CompileQuery) { export function addQueryToTokenMap(map: Map<any, CompileQuery[]>, query: CompileQuery) {
query.meta.selectors.forEach((selector) => { query.meta.selectors.forEach((selector) => {
var entry = map.get(selector.reference); var entry = map.get(selector.reference);
if (isBlank(entry)) { if (!entry) {
entry = []; entry = [];
map.set(selector.reference, entry); map.set(selector.reference, entry);
} }

View File

@ -10,7 +10,7 @@ import {AnimationEntryCompileResult} from '../animation/animation_compiler';
import {CompileDirectiveMetadata, CompileIdentifierMetadata, CompilePipeMetadata} from '../compile_metadata'; import {CompileDirectiveMetadata, CompileIdentifierMetadata, CompilePipeMetadata} from '../compile_metadata';
import {CompilerConfig} from '../config'; import {CompilerConfig} from '../config';
import {ListWrapper, MapWrapper} from '../facade/collection'; import {ListWrapper, MapWrapper} from '../facade/collection';
import {isBlank, isPresent} from '../facade/lang'; import {isPresent} from '../facade/lang';
import {Identifiers, resolveIdentifier} from '../identifiers'; import {Identifiers, resolveIdentifier} from '../identifiers';
import * as o from '../output/output_ast'; import * as o from '../output/output_ast';
import {ViewType} from '../private_import_core'; import {ViewType} from '../private_import_core';
@ -138,7 +138,7 @@ export class CompileView implements NameResolver {
} }
var currView: CompileView = this; var currView: CompileView = this;
var result = currView.locals.get(name); var result = currView.locals.get(name);
while (isBlank(result) && isPresent(currView.declarationElement.view)) { while (!result && isPresent(currView.declarationElement.view)) {
currView = currView.declarationElement.view; currView = currView.declarationElement.view;
result = currView.locals.get(name); result = currView.locals.get(name);
} }

View File

@ -8,7 +8,7 @@
import {CompileDirectiveMetadata} from '../compile_metadata'; import {CompileDirectiveMetadata} from '../compile_metadata';
import {StringMapWrapper} from '../facade/collection'; import {StringMapWrapper} from '../facade/collection';
import {StringWrapper, isBlank, isPresent} from '../facade/lang'; import {StringWrapper, isPresent} from '../facade/lang';
import {identifierToken} from '../identifiers'; import {identifierToken} from '../identifiers';
import * as o from '../output/output_ast'; import * as o from '../output/output_ast';
import {BoundEventAst, DirectiveAst} from '../template_parser/template_ast'; import {BoundEventAst, DirectiveAst} from '../template_parser/template_ast';
@ -32,7 +32,7 @@ export class CompileEventListener {
var listener = targetEventListeners.find( var listener = targetEventListeners.find(
listener => listener.eventTarget == eventTarget && listener.eventName == eventName && listener => listener.eventTarget == eventTarget && listener.eventName == eventName &&
listener.eventPhase == eventPhase); listener.eventPhase == eventPhase);
if (isBlank(listener)) { if (!listener) {
listener = new CompileEventListener( listener = new CompileEventListener(
compileElement, eventTarget, eventName, eventPhase, targetEventListeners.length); compileElement, eventTarget, eventName, eventPhase, targetEventListeners.length);
targetEventListeners.push(listener); targetEventListeners.push(listener);

View File

@ -9,7 +9,7 @@
import {SecurityContext} from '@angular/core'; import {SecurityContext} from '@angular/core';
import * as cdAst from '../expression_parser/ast'; import * as cdAst from '../expression_parser/ast';
import {isBlank, isPresent} from '../facade/lang'; import {isPresent} from '../facade/lang';
import {Identifiers, resolveIdentifier} from '../identifiers'; import {Identifiers, resolveIdentifier} from '../identifiers';
import * as o from '../output/output_ast'; import * as o from '../output/output_ast';
import {EMPTY_STATE as EMPTY_ANIMATION_STATE, LifecycleHooks, isDefaultChangeDetectionStrategy} from '../private_import_core'; import {EMPTY_STATE as EMPTY_ANIMATION_STATE, LifecycleHooks, isDefaultChangeDetectionStrategy} from '../private_import_core';
@ -37,7 +37,7 @@ function bind(
method: CompileMethod, bindingIndex: number) { method: CompileMethod, bindingIndex: number) {
var checkExpression = convertCdExpressionToIr( var checkExpression = convertCdExpressionToIr(
view, context, parsedExpression, DetectChangesVars.valUnwrapper, bindingIndex); view, context, parsedExpression, DetectChangesVars.valUnwrapper, bindingIndex);
if (isBlank(checkExpression.expression)) { if (!checkExpression.expression) {
// e.g. an empty expression was given // e.g. an empty expression was given
return; return;
} }

View File

@ -8,7 +8,7 @@
import {CompileDirectiveMetadata, CompileTokenMetadata} from '../compile_metadata'; import {CompileDirectiveMetadata, CompileTokenMetadata} from '../compile_metadata';
import {isBlank, isPresent} from '../facade/lang'; import {isPresent} from '../facade/lang';
import {Identifiers, resolveIdentifier} from '../identifiers'; import {Identifiers, resolveIdentifier} from '../identifiers';
import * as o from '../output/output_ast'; import * as o from '../output/output_ast';
import {createDiTokenExpression} from '../util'; import {createDiTokenExpression} from '../util';
@ -84,7 +84,7 @@ export function createPureProxy(
view.fields.push(new o.ClassField(pureProxyProp.name, null)); view.fields.push(new o.ClassField(pureProxyProp.name, null));
var pureProxyId = var pureProxyId =
argCount < Identifiers.pureProxies.length ? Identifiers.pureProxies[argCount] : null; argCount < Identifiers.pureProxies.length ? Identifiers.pureProxies[argCount] : null;
if (isBlank(pureProxyId)) { if (!pureProxyId) {
throw new Error(`Unsupported number of argument for pure functions: ${argCount}`); throw new Error(`Unsupported number of argument for pure functions: ${argCount}`);
} }
view.createMethod.addStmt(o.THIS_EXPR.prop(pureProxyProp.name) view.createMethod.addStmt(o.THIS_EXPR.prop(pureProxyProp.name)

View File

@ -11,8 +11,6 @@ import {JavaScriptEmitter} from '@angular/compiler/src/output/js_emitter';
import * as o from '@angular/compiler/src/output/output_ast'; import * as o from '@angular/compiler/src/output/output_ast';
import {beforeEach, describe, expect, it} from '@angular/core/testing/testing_internal'; import {beforeEach, describe, expect, it} from '@angular/core/testing/testing_internal';
import {isBlank} from '../../src/facade/lang';
import {SimpleJsImportGenerator} from './output_emitter_util'; import {SimpleJsImportGenerator} from './output_emitter_util';
var someModuleUrl = 'asset:somePackage/lib/somePath'; var someModuleUrl = 'asset:somePackage/lib/somePath';
@ -39,7 +37,7 @@ export function main() {
}); });
function emitStmt(stmt: o.Statement, exportedVars: string[] = null): string { function emitStmt(stmt: o.Statement, exportedVars: string[] = null): string {
if (isBlank(exportedVars)) { if (!exportedVars) {
exportedVars = []; exportedVars = [];
} }
return emitter.emitStatements(someModuleUrl, [stmt], exportedVars); return emitter.emitStatements(someModuleUrl, [stmt], exportedVars);

View File

@ -11,8 +11,6 @@ import * as o from '@angular/compiler/src/output/output_ast';
import {TypeScriptEmitter} from '@angular/compiler/src/output/ts_emitter'; import {TypeScriptEmitter} from '@angular/compiler/src/output/ts_emitter';
import {beforeEach, describe, expect, it} from '@angular/core/testing/testing_internal'; import {beforeEach, describe, expect, it} from '@angular/core/testing/testing_internal';
import {isBlank} from '../../src/facade/lang';
import {SimpleJsImportGenerator} from './output_emitter_util'; import {SimpleJsImportGenerator} from './output_emitter_util';
var someModuleUrl = 'asset:somePackage/lib/somePath'; var someModuleUrl = 'asset:somePackage/lib/somePath';
@ -39,7 +37,7 @@ export function main() {
}); });
function emitStmt(stmt: o.Statement, exportedVars: string[] = null): string { function emitStmt(stmt: o.Statement, exportedVars: string[] = null): string {
if (isBlank(exportedVars)) { if (!exportedVars) {
exportedVars = []; exportedVars = [];
} }
return emitter.emitStatements(someModuleUrl, [stmt], exportedVars); return emitter.emitStatements(someModuleUrl, [stmt], exportedVars);

View File

@ -722,7 +722,7 @@ class _DuplicateMap {
var key = getMapKey(trackById); var key = getMapKey(trackById);
var recordList = this.map.get(key); var recordList = this.map.get(key);
return isBlank(recordList) ? null : recordList.get(trackById, afterIndex); return recordList ? recordList.get(trackById, afterIndex) : null;
} }
/** /**

View File

@ -8,7 +8,7 @@
import {Optional, Provider, SkipSelf} from '../../di'; import {Optional, Provider, SkipSelf} from '../../di';
import {ListWrapper} from '../../facade/collection'; import {ListWrapper} from '../../facade/collection';
import {getTypeNameForDebugging, isBlank, isPresent} from '../../facade/lang'; import {getTypeNameForDebugging, isPresent} from '../../facade/lang';
import {ChangeDetectorRef} from '../change_detector_ref'; import {ChangeDetectorRef} from '../change_detector_ref';
@ -82,7 +82,7 @@ export class IterableDiffers {
return { return {
provide: IterableDiffers, provide: IterableDiffers,
useFactory: (parent: IterableDiffers) => { useFactory: (parent: IterableDiffers) => {
if (isBlank(parent)) { if (!parent) {
// Typically would occur when calling IterableDiffers.extend inside of dependencies passed // Typically would occur when calling IterableDiffers.extend inside of dependencies passed
// to // to
// bootstrap(), which would override default pipes instead of extending them. // bootstrap(), which would override default pipes instead of extending them.

View File

@ -8,7 +8,7 @@
import {Optional, Provider, SkipSelf} from '../../di'; import {Optional, Provider, SkipSelf} from '../../di';
import {ListWrapper} from '../../facade/collection'; import {ListWrapper} from '../../facade/collection';
import {isBlank, isPresent} from '../../facade/lang'; import {isPresent} from '../../facade/lang';
import {ChangeDetectorRef} from '../change_detector_ref'; import {ChangeDetectorRef} from '../change_detector_ref';
@ -72,7 +72,7 @@ export class KeyValueDiffers {
return { return {
provide: KeyValueDiffers, provide: KeyValueDiffers,
useFactory: (parent: KeyValueDiffers) => { useFactory: (parent: KeyValueDiffers) => {
if (isBlank(parent)) { if (!parent) {
// Typically would occur when calling KeyValueDiffers.extend inside of dependencies passed // Typically would occur when calling KeyValueDiffers.extend inside of dependencies passed
// to // to
// bootstrap(), which would override default pipes instead of extending them. // bootstrap(), which would override default pipes instead of extending them.

View File

@ -8,7 +8,7 @@
import {ListWrapper} from '../facade/collection'; import {ListWrapper} from '../facade/collection';
import {BaseError, WrappedError} from '../facade/errors'; import {BaseError, WrappedError} from '../facade/errors';
import {isBlank, stringify} from '../facade/lang'; import {stringify} from '../facade/lang';
import {Type} from '../type'; import {Type} from '../type';
import {ReflectiveInjector} from './reflective_injector'; import {ReflectiveInjector} from './reflective_injector';
@ -229,7 +229,7 @@ export class NoAnnotationError extends BaseError {
var signature: string[] = []; var signature: string[] = [];
for (var i = 0, ii = params.length; i < ii; i++) { for (var i = 0, ii = params.length; i < ii; i++) {
var parameter = params[i]; var parameter = params[i];
if (isBlank(parameter) || parameter.length == 0) { if (!parameter || parameter.length == 0) {
signature.push('?'); signature.push('?');
} else { } else {
signature.push(parameter.map(stringify).join(' ')); signature.push(parameter.map(stringify).join(' '));

View File

@ -6,7 +6,7 @@
* found in the LICENSE file at https://angular.io/license * found in the LICENSE file at https://angular.io/license
*/ */
import {isBlank, stringify} from '../facade/lang'; import {stringify} from '../facade/lang';
import {resolveForwardRef} from './forward_ref'; import {resolveForwardRef} from './forward_ref';
@ -32,7 +32,7 @@ export class ReflectiveKey {
* Private * Private
*/ */
constructor(public token: Object, public id: number) { constructor(public token: Object, public id: number) {
if (isBlank(token)) { if (!token) {
throw new Error('Token must be defined!'); throw new Error('Token must be defined!');
} }
} }

View File

@ -201,7 +201,7 @@ function _normalizeProviders(providers: Provider[], res: Provider[]): Provider[]
export function constructDependencies( export function constructDependencies(
typeOrFunc: any, dependencies: any[]): ReflectiveDependency[] { typeOrFunc: any, dependencies: any[]): ReflectiveDependency[] {
if (isBlank(dependencies)) { if (!dependencies) {
return _dependenciesFor(typeOrFunc); return _dependenciesFor(typeOrFunc);
} else { } else {
var params: any[][] = dependencies.map(t => [t]); var params: any[][] = dependencies.map(t => [t]);
@ -211,7 +211,7 @@ export function constructDependencies(
function _dependenciesFor(typeOrFunc: any): ReflectiveDependency[] { function _dependenciesFor(typeOrFunc: any): ReflectiveDependency[] {
var params = reflector.parameters(typeOrFunc); var params = reflector.parameters(typeOrFunc);
if (isBlank(params)) return []; if (!params) return [];
if (params.some(isBlank)) { if (params.some(isBlank)) {
throw new NoAnnotationError(typeOrFunc, params); throw new NoAnnotationError(typeOrFunc, params);
} }

View File

@ -9,7 +9,6 @@
import {ChangeDetectorRef} from '../change_detection/change_detection'; import {ChangeDetectorRef} from '../change_detection/change_detection';
import {Injector} from '../di/injector'; import {Injector} from '../di/injector';
import {unimplemented} from '../facade/errors'; import {unimplemented} from '../facade/errors';
import {isBlank} from '../facade/lang';
import {Type} from '../type'; import {Type} from '../type';
import {AppElement} from './element'; import {AppElement} from './element';
import {ElementRef} from './element_ref'; import {ElementRef} from './element_ref';
@ -101,7 +100,7 @@ export class ComponentFactory<C> {
injector: Injector, projectableNodes: any[][] = null, injector: Injector, projectableNodes: any[][] = null,
rootSelectorOrNode: string|any = null): ComponentRef<C> { rootSelectorOrNode: string|any = null): ComponentRef<C> {
var vu: ViewUtils = injector.get(ViewUtils); var vu: ViewUtils = injector.get(ViewUtils);
if (isBlank(projectableNodes)) { if (!projectableNodes) {
projectableNodes = []; projectableNodes = [];
} }
// Note: Host views don't need a declarationAppElement! // Note: Host views don't need a declarationAppElement!

View File

@ -10,7 +10,7 @@ import {APP_ID} from '../application_tokens';
import {devModeEqual} from '../change_detection/change_detection'; import {devModeEqual} from '../change_detection/change_detection';
import {UNINITIALIZED} from '../change_detection/change_detection_util'; import {UNINITIALIZED} from '../change_detection/change_detection_util';
import {Inject, Injectable} from '../di'; import {Inject, Injectable} from '../di';
import {isBlank, isPresent, looseIdentical} from '../facade/lang'; import {isPresent, looseIdentical} from '../facade/lang';
import {ViewEncapsulation} from '../metadata/view'; import {ViewEncapsulation} from '../metadata/view';
import {RenderComponentType, Renderer, RootRenderer} from '../render/api'; import {RenderComponentType, Renderer, RootRenderer} from '../render/api';
import {Sanitizer} from '../security'; import {Sanitizer} from '../security';
@ -72,7 +72,7 @@ const EMPTY_ARR: any[] = [];
export function ensureSlotCount(projectableNodes: any[][], expectedSlotCount: number): any[][] { export function ensureSlotCount(projectableNodes: any[][], expectedSlotCount: number): any[][] {
var res: any[][]; var res: any[][];
if (isBlank(projectableNodes)) { if (!projectableNodes) {
res = EMPTY_ARR; res = EMPTY_ARR;
} else if (projectableNodes.length < expectedSlotCount) { } else if (projectableNodes.length < expectedSlotCount) {
var givenSlotCount = projectableNodes.length; var givenSlotCount = projectableNodes.length;

View File

@ -6,7 +6,7 @@
* found in the LICENSE file at https://angular.io/license * found in the LICENSE file at https://angular.io/license
*/ */
import {isBlank} from '../../src/facade/lang';
export function iterableChangesAsString( export function iterableChangesAsString(
{collection = [] as any, previous = [] as any, additions = [] as any, moves = [] as any, {collection = [] as any, previous = [] as any, additions = [] as any, moves = [] as any,
@ -23,11 +23,11 @@ export function kvChangesAsString(
{map, previous, additions, changes, removals}: {map, previous, additions, changes, removals}:
{map?: any[], previous?: any[], additions?: any[], changes?: any[], removals?: any[]}): {map?: any[], previous?: any[], additions?: any[], changes?: any[], removals?: any[]}):
string { string {
if (isBlank(map)) map = []; if (!map) map = [];
if (isBlank(previous)) previous = []; if (!previous) previous = [];
if (isBlank(additions)) additions = []; if (!additions) additions = [];
if (isBlank(changes)) changes = []; if (!changes) changes = [];
if (isBlank(removals)) removals = []; if (!removals) removals = [];
return 'map: ' + map.join(', ') + '\n' + return 'map: ' + map.join(', ') + '\n' +
'previous: ' + previous.join(', ') + '\n' + 'previous: ' + previous.join(', ') + '\n' +

View File

@ -11,7 +11,7 @@ import {ReflectiveInjectorDynamicStrategy, ReflectiveInjectorInlineStrategy, Ref
import {ResolvedReflectiveProvider_} from '@angular/core/src/di/reflective_provider'; import {ResolvedReflectiveProvider_} from '@angular/core/src/di/reflective_provider';
import {expect} from '@angular/platform-browser/testing/matchers'; import {expect} from '@angular/platform-browser/testing/matchers';
import {isBlank, isPresent, stringify} from '../../src/facade/lang'; import {isPresent, stringify} from '../../src/facade/lang';
class Engine {} class Engine {}
@ -458,7 +458,7 @@ export function main() {
it('should resolve and flatten', () => { it('should resolve and flatten', () => {
var providers = ReflectiveInjector.resolve([Engine, [BrokenEngine]]); var providers = ReflectiveInjector.resolve([Engine, [BrokenEngine]]);
providers.forEach(function(b) { providers.forEach(function(b) {
if (isBlank(b)) return; // the result is a sparse array if (!b) return; // the result is a sparse array
expect(b instanceof ResolvedReflectiveProvider_).toBe(true); expect(b instanceof ResolvedReflectiveProvider_).toBe(true);
}); });
}); });

View File

@ -10,7 +10,6 @@ import {Directive, Inject, Input, OnChanges, Optional, Output, Self, SimpleChang
import {EventEmitter} from '../../facade/async'; import {EventEmitter} from '../../facade/async';
import {ListWrapper} from '../../facade/collection'; import {ListWrapper} from '../../facade/collection';
import {isBlank} from '../../facade/lang';
import {FormArray, FormControl, FormGroup} from '../../model'; import {FormArray, FormControl, FormGroup} from '../../model';
import {NG_ASYNC_VALIDATORS, NG_VALIDATORS, Validators} from '../../validators'; import {NG_ASYNC_VALIDATORS, NG_VALIDATORS, Validators} from '../../validators';
import {ControlContainer} from '../control_container'; import {ControlContainer} from '../control_container';
@ -174,7 +173,7 @@ export class FormGroupDirective extends ControlContainer implements Form,
} }
private _checkFormPresent() { private _checkFormPresent() {
if (isBlank(this.form)) { if (!this.form) {
ReactiveErrors.missingFormException(); ReactiveErrors.missingFormException();
} }
} }

View File

@ -35,8 +35,8 @@ export function controlPath(name: string, parent: ControlContainer): string[] {
} }
export function setUpControl(control: FormControl, dir: NgControl): void { export function setUpControl(control: FormControl, dir: NgControl): void {
if (isBlank(control)) _throwError(dir, 'Cannot find control with'); if (!control) _throwError(dir, 'Cannot find control with');
if (isBlank(dir.valueAccessor)) _throwError(dir, 'No value accessor for form control with'); if (!dir.valueAccessor) _throwError(dir, 'No value accessor for form control with');
control.validator = Validators.compose([control.validator, dir.validator]); control.validator = Validators.compose([control.validator, dir.validator]);
control.asyncValidator = Validators.composeAsync([control.asyncValidator, dir.asyncValidator]); control.asyncValidator = Validators.composeAsync([control.asyncValidator, dir.asyncValidator]);
@ -139,7 +139,7 @@ export function isBuiltInAccessor(valueAccessor: ControlValueAccessor): boolean
// TODO: vsavkin remove it once https://github.com/angular/angular/issues/3011 is implemented // TODO: vsavkin remove it once https://github.com/angular/angular/issues/3011 is implemented
export function selectValueAccessor( export function selectValueAccessor(
dir: NgControl, valueAccessors: ControlValueAccessor[]): ControlValueAccessor { dir: NgControl, valueAccessors: ControlValueAccessor[]): ControlValueAccessor {
if (isBlank(valueAccessors)) return null; if (!valueAccessors) return null;
var defaultAccessor: ControlValueAccessor; var defaultAccessor: ControlValueAccessor;
var builtinAccessor: ControlValueAccessor; var builtinAccessor: ControlValueAccessor;

View File

@ -114,7 +114,7 @@ export class Validators {
* of the individual error maps. * of the individual error maps.
*/ */
static compose(validators: ValidatorFn[]): ValidatorFn { static compose(validators: ValidatorFn[]): ValidatorFn {
if (isBlank(validators)) return null; if (!validators) return null;
var presentValidators = validators.filter(isPresent); var presentValidators = validators.filter(isPresent);
if (presentValidators.length == 0) return null; if (presentValidators.length == 0) return null;
@ -124,7 +124,7 @@ export class Validators {
} }
static composeAsync(validators: AsyncValidatorFn[]): AsyncValidatorFn { static composeAsync(validators: AsyncValidatorFn[]): AsyncValidatorFn {
if (isBlank(validators)) return null; if (!validators) return null;
var presentValidators = validators.filter(isPresent); var presentValidators = validators.filter(isPresent);
if (presentValidators.length == 0) return null; if (presentValidators.length == 0) return null;

View File

@ -7,7 +7,6 @@
*/ */
import {ListWrapper, MapWrapper, StringMapWrapper, isListLikeIterable, iterateListLike} from '../src/facade/collection'; import {ListWrapper, MapWrapper, StringMapWrapper, isListLikeIterable, iterateListLike} from '../src/facade/collection';
import {isBlank} from '../src/facade/lang';
/** /**
* Polyfill for [Headers](https://developer.mozilla.org/en-US/docs/Web/API/Headers/Headers), as * Polyfill for [Headers](https://developer.mozilla.org/en-US/docs/Web/API/Headers/Headers), as
@ -48,7 +47,7 @@ export class Headers {
this._headersMap = new Map<string, string[]>(); this._headersMap = new Map<string, string[]>();
if (isBlank(headers)) { if (!headers) {
return; return;
} }

View File

@ -8,8 +8,6 @@
import {Type} from '@angular/core'; import {Type} from '@angular/core';
import {isBlank} from '../facade/lang';
var _DOM: DomAdapter = null; var _DOM: DomAdapter = null;
export function getDOM() { export function getDOM() {
@ -21,7 +19,7 @@ export function setDOM(adapter: DomAdapter) {
} }
export function setRootDomAdapter(adapter: DomAdapter) { export function setRootDomAdapter(adapter: DomAdapter) {
if (isBlank(_DOM)) { if (!_DOM) {
_DOM = adapter; _DOM = adapter;
} }
} }

View File

@ -34,7 +34,7 @@ export abstract class DomRootRenderer implements RootRenderer {
renderComponent(componentProto: RenderComponentType): Renderer { renderComponent(componentProto: RenderComponentType): Renderer {
var renderer = this.registeredComponents.get(componentProto.id); var renderer = this.registeredComponents.get(componentProto.id);
if (isBlank(renderer)) { if (!renderer) {
renderer = new DomRenderer(this, componentProto, this.animationDriver); renderer = new DomRenderer(this, componentProto, this.animationDriver);
this.registeredComponents.set(componentProto.id, renderer); this.registeredComponents.set(componentProto.id, renderer);
} }

View File

@ -8,7 +8,7 @@
import {Injectable, NgZone} from '@angular/core'; import {Injectable, NgZone} from '@angular/core';
import {ListWrapper, StringMapWrapper} from '../../facade/collection'; import {ListWrapper} from '../../facade/collection';
import {StringWrapper, isPresent} from '../../facade/lang'; import {StringWrapper, isPresent} from '../../facade/lang';
import {getDOM} from '../dom_adapter'; import {getDOM} from '../dom_adapter';

View File

@ -6,7 +6,7 @@
* found in the LICENSE file at https://angular.io/license * found in the LICENSE file at https://angular.io/license
*/ */
import {StringMapWrapper} from '../src/facade/collection';
import {BrowserDetection} from '../testing/browser_util'; import {BrowserDetection} from '../testing/browser_util';
export function main() { export function main() {

View File

@ -135,7 +135,7 @@ export class Parse5DomAdapter extends DomAdapter {
} }
on(el: any /** TODO #9100 */, evt: any /** TODO #9100 */, listener: any /** TODO #9100 */) { on(el: any /** TODO #9100 */, evt: any /** TODO #9100 */, listener: any /** TODO #9100 */) {
var listenersMap: {[k: string]: any} = el._eventListenersMap; var listenersMap: {[k: string]: any} = el._eventListenersMap;
if (isBlank(listenersMap)) { if (!listenersMap) {
var listenersMap: {[k: string]: any} = {}; var listenersMap: {[k: string]: any} = {};
el._eventListenersMap = listenersMap; el._eventListenersMap = listenersMap;
} }

View File

@ -9,7 +9,6 @@
import {Injectable, Type} from '@angular/core'; import {Injectable, Type} from '@angular/core';
import {EventEmitter} from '../../facade/async'; import {EventEmitter} from '../../facade/async';
import {StringMapWrapper} from '../../facade/collection';
import {DateWrapper, StringWrapper, isPresent, print, stringify} from '../../facade/lang'; import {DateWrapper, StringWrapper, isPresent, print, stringify} from '../../facade/lang';
import {MessageBus} from './message_bus'; import {MessageBus} from './message_bus';

View File

@ -9,7 +9,7 @@
import {Injectable, RenderComponentType, Renderer, RootRenderer, ViewEncapsulation} from '@angular/core'; import {Injectable, RenderComponentType, Renderer, RootRenderer, ViewEncapsulation} from '@angular/core';
import {ListWrapper} from '../../facade/collection'; import {ListWrapper} from '../../facade/collection';
import {isBlank, isPresent} from '../../facade/lang'; import {isPresent} from '../../facade/lang';
import {AnimationKeyframe, AnimationPlayer, AnimationStyles, RenderDebugInfo} from '../../private_import_core'; import {AnimationKeyframe, AnimationPlayer, AnimationStyles, RenderDebugInfo} from '../../private_import_core';
import {ClientMessageBrokerFactory, FnArg, UiArguments} from '../shared/client_message_broker'; import {ClientMessageBrokerFactory, FnArg, UiArguments} from '../shared/client_message_broker';
import {MessageBus} from '../shared/message_bus'; import {MessageBus} from '../shared/message_bus';
@ -50,7 +50,7 @@ export class WebWorkerRootRenderer implements RootRenderer {
renderComponent(componentType: RenderComponentType): Renderer { renderComponent(componentType: RenderComponentType): Renderer {
var result = this._componentRenderers.get(componentType.id); var result = this._componentRenderers.get(componentType.id);
if (isBlank(result)) { if (!result) {
result = new WebWorkerRenderer(this, componentType); result = new WebWorkerRenderer(this, componentType);
this._componentRenderers.set(componentType.id, result); this._componentRenderers.set(componentType.id, result);
var id = this._renderStore.allocateId(); var id = this._renderStore.allocateId();
@ -243,11 +243,11 @@ export class NamedEventEmitter {
private _listeners: Map<string, Function[]>; private _listeners: Map<string, Function[]>;
private _getListeners(eventName: string): Function[] { private _getListeners(eventName: string): Function[] {
if (isBlank(this._listeners)) { if (!this._listeners) {
this._listeners = new Map<string, Function[]>(); this._listeners = new Map<string, Function[]>();
} }
var listeners = this._listeners.get(eventName); var listeners = this._listeners.get(eventName);
if (isBlank(listeners)) { if (!listeners) {
listeners = []; listeners = [];
this._listeners.set(eventName, listeners); this._listeners.set(eventName, listeners);
} }