From c5586b7dfad08dcdfb8cb6afd2ac1d4526141cd5 Mon Sep 17 00:00:00 2001 From: Alex Rickabaugh Date: Wed, 17 Jan 2018 09:21:25 -0800 Subject: [PATCH] fix(ivy): assertLessThan asserts the wrong thing (#21430) assertLessThan() actually does the opposite of what it advertises. It's only through luck that existing asserts have not failed before. This changes assertLessThan to actually assert that the value is less than something. PR Close #21430 --- packages/core/src/render3/assert.ts | 2 +- packages/core/src/render3/instructions.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core/src/render3/assert.ts b/packages/core/src/render3/assert.ts index b90245f85a..a8df759478 100644 --- a/packages/core/src/render3/assert.ts +++ b/packages/core/src/render3/assert.ts @@ -37,7 +37,7 @@ export function assertEqual( } export function assertLessThan(actual: T, expected: T, name: string) { - (actual < expected) && assertThrow(actual, expected, name, '>'); + (actual >= expected) && assertThrow(actual, expected, name, '<'); } export function assertNotNull(actual: T, name: string) { diff --git a/packages/core/src/render3/instructions.ts b/packages/core/src/render3/instructions.ts index d716d211ab..a3b54f4266 100644 --- a/packages/core/src/render3/instructions.ts +++ b/packages/core/src/render3/instructions.ts @@ -1878,8 +1878,8 @@ export function memory(index: number, value?: T): T { } function valueInData(data: any[], index: number, value?: T): T { - ngDevMode && assertDataInRange(index, data); if (value === undefined) { + ngDevMode && assertDataInRange(index, data); value = data[index]; } else { // We don't store any static data for local variables, so the first time @@ -1914,5 +1914,5 @@ function assertHasParent() { function assertDataInRange(index: number, arr?: any[]) { if (arr == null) arr = data; - assertLessThan(arr ? arr.length : 0, index, 'data.length'); + assertLessThan(index, arr ? arr.length : 0, 'data.length'); }