From b6253370cc8e430c575acd3fce0da44e057eb5b9 Mon Sep 17 00:00:00 2001 From: Nicholas Berlette Date: Wed, 28 Jun 2023 18:46:30 -0700 Subject: fix(console): correct the parseCssColor algorithm (#19645) This is a fix for issue #19644, concerning the `parseCssColor` function in the file `ext/console/01_console.js`. Changes made on lines 2756-2758. To sum it up: > The internal `parseCssColor` function currently parses 3/4-digit hex colors incorrectly. For example, it parses the string `#FFFFFF` as `[255, 255, 255]` (as expected), but returns `[240, 240, 240]` for `#FFF`, when it should return the same triplet as the former. While it's not going to cause a fatal runtime error, it did bug me enough to fix it real quick. --- cli/tests/unit/console_test.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'cli') diff --git a/cli/tests/unit/console_test.ts b/cli/tests/unit/console_test.ts index 8543541af..7dac7ca77 100644 --- a/cli/tests/unit/console_test.ts +++ b/cli/tests/unit/console_test.ts @@ -1152,9 +1152,12 @@ Deno.test(function consoleParseCssColor() { assertEquals(parseCssColor("darkmagenta"), [139, 0, 139]); assertEquals(parseCssColor("slateblue"), [106, 90, 205]); assertEquals(parseCssColor("#ffaa00"), [255, 170, 0]); - assertEquals(parseCssColor("#ffaa00"), [255, 170, 0]); - assertEquals(parseCssColor("#18d"), [16, 128, 208]); - assertEquals(parseCssColor("#18D"), [16, 128, 208]); + assertEquals(parseCssColor("#ffAA00"), [255, 170, 0]); + assertEquals(parseCssColor("#fa0"), [255, 170, 0]); + assertEquals(parseCssColor("#FA0"), [255, 170, 0]); + assertEquals(parseCssColor("#18d"), [17, 136, 221]); + assertEquals(parseCssColor("#18D"), [17, 136, 221]); + assertEquals(parseCssColor("#1188DD"), [17, 136, 221]); assertEquals(parseCssColor("rgb(100, 200, 50)"), [100, 200, 50]); assertEquals(parseCssColor("rgb(+100.3, -200, .5)"), [100, 0, 1]); assertEquals(parseCssColor("hsl(75, 60%, 40%)"), [133, 163, 41]); -- cgit v1.2.3