MCPcopy Index your code
hub / github.com/nodejs/node / scanHexDigits

Function scanHexDigits

test/fixtures/snapshot/typescript.js:11014–11054  ·  view source on GitHub ↗
(minCount, scanAsManyAsPossible, canHaveSeparators)

Source from the content-addressed store, hash-verified

11012 return scanHexDigits(/*minCount*/ count, /*scanAsManyAsPossible*/ true, canHaveSeparators);
11013 }
11014 function scanHexDigits(minCount, scanAsManyAsPossible, canHaveSeparators) {
11015 var valueChars = [];
11016 var allowSeparator = false;
11017 var isPreviousTokenSeparator = false;
11018 while (valueChars.length < minCount || scanAsManyAsPossible) {
11019 var ch = text.charCodeAt(pos);
11020 if (canHaveSeparators && ch === 95 /* CharacterCodes._ */) {
11021 tokenFlags |= 512 /* TokenFlags.ContainsSeparator */;
11022 if (allowSeparator) {
11023 allowSeparator = false;
11024 isPreviousTokenSeparator = true;
11025 }
11026 else if (isPreviousTokenSeparator) {
11027 error(ts.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted, pos, 1);
11028 }
11029 else {
11030 error(ts.Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1);
11031 }
11032 pos++;
11033 continue;
11034 }
11035 allowSeparator = canHaveSeparators;
11036 if (ch >= 65 /* CharacterCodes.A */ && ch <= 70 /* CharacterCodes.F */) {
11037 ch += 97 /* CharacterCodes.a */ - 65 /* CharacterCodes.A */; // standardize hex literals to lowercase
11038 }
11039 else if (!((ch >= 48 /* CharacterCodes._0 */ && ch <= 57 /* CharacterCodes._9 */) ||
11040 (ch >= 97 /* CharacterCodes.a */ && ch <= 102 /* CharacterCodes.f */))) {
11041 break;
11042 }
11043 valueChars.push(ch);
11044 pos++;
11045 isPreviousTokenSeparator = false;
11046 }
11047 if (valueChars.length < minCount) {
11048 valueChars = [];
11049 }
11050 if (text.charCodeAt(pos - 1) === 95 /* CharacterCodes._ */) {
11051 error(ts.Diagnostics.Numeric_separators_are_not_allowed_here, pos - 1, 1);
11052 }
11053 return String.fromCharCode.apply(String, valueChars);
11054 }
11055 function scanString(jsxAttributeString) {
11056 if (jsxAttributeString === void 0) { jsxAttributeString = false; }
11057 var quote = text.charCodeAt(pos);

Callers 2

Calls 3

errorFunction · 0.70
pushMethod · 0.45
applyMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…