diff --git a/packages/core/src/render3/bindings.ts b/packages/core/src/render3/bindings.ts index 400aec275e..0fe18bc2ee 100644 --- a/packages/core/src/render3/bindings.ts +++ b/packages/core/src/render3/bindings.ts @@ -7,7 +7,7 @@ */ import {devModeEqual} from '../change_detection/change_detection_util'; -import {assertDataInRange, assertLessThan, assertNotEqual} from '../util/assert'; +import {assertDataInRange, assertLessThan, assertNotSame} from '../util/assert'; import {throwErrorIfNoChangesMode} from './errors'; import {LView} from './interfaces/view'; import {getCheckNoChangesMode} from './state'; @@ -27,13 +27,13 @@ export function updateBinding(lView: LView, bindingIndex: number, value: any): a export function getBinding(lView: LView, bindingIndex: number): any { ngDevMode && assertDataInRange(lView, bindingIndex); ngDevMode && - assertNotEqual(lView[bindingIndex], NO_CHANGE, 'Stored value should never be NO_CHANGE.'); + assertNotSame(lView[bindingIndex], NO_CHANGE, 'Stored value should never be NO_CHANGE.'); return lView[bindingIndex]; } /** Updates binding if changed, then returns whether it was updated. */ export function bindingUpdated(lView: LView, bindingIndex: number, value: any): boolean { - ngDevMode && assertNotEqual(value, NO_CHANGE, 'Incoming value should never be NO_CHANGE.'); + ngDevMode && assertNotSame(value, NO_CHANGE, 'Incoming value should never be NO_CHANGE.'); ngDevMode && assertLessThan(bindingIndex, lView.length, `Slot should have been initialized to NO_CHANGE`); diff --git a/packages/core/src/util/assert.ts b/packages/core/src/util/assert.ts index ea9ed55542..58b93ffb2f 100644 --- a/packages/core/src/util/assert.ts +++ b/packages/core/src/util/assert.ts @@ -34,6 +34,12 @@ export function assertSame(actual: T, expected: T, msg: string) { } } +export function assertNotSame(actual: T, expected: T, msg: string) { + if (actual === expected) { + throwError(msg); + } +} + export function assertLessThan(actual: T, expected: T, msg: string) { if (actual >= expected) { throwError(msg);