MCPcopy
hub / github.com/tdewolff/minify / parse

Function parse

_benchmarks/sample_echarts.js:2493–2578  ·  view source on GitHub ↗
(colorStr, rgbaArr)

Source from the content-addressed store, hash-verified

2491 lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));
2492 }
2493 function parse(colorStr, rgbaArr) {
2494 if (!colorStr) {
2495 return;
2496 }
2497 rgbaArr = rgbaArr || [];
2498 var cached = colorCache.get(colorStr);
2499 if (cached) {
2500 return copyRgba(rgbaArr, cached);
2501 }
2502 colorStr = colorStr + '';
2503 var str = colorStr.replace(/ /g, '').toLowerCase();
2504 if (str in kCSSColorTable) {
2505 copyRgba(rgbaArr, kCSSColorTable[str]);
2506 putToCache(colorStr, rgbaArr);
2507 return rgbaArr;
2508 }
2509 var strLen = str.length;
2510 if (str.charAt(0) === '#') {
2511 if (strLen === 4 || strLen === 5) {
2512 var iv = parseInt(str.slice(1, 4), 16);
2513 if (!(iv >= 0 && iv <= 0xfff)) {
2514 setRgba(rgbaArr, 0, 0, 0, 1);
2515 return;
2516 }
2517 setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), strLen === 5 ? parseInt(str.slice(4), 16) / 0xf : 1);
2518 putToCache(colorStr, rgbaArr);
2519 return rgbaArr;
2520 }
2521 else if (strLen === 7 || strLen === 9) {
2522 var iv = parseInt(str.slice(1, 7), 16);
2523 if (!(iv >= 0 && iv <= 0xffffff)) {
2524 setRgba(rgbaArr, 0, 0, 0, 1);
2525 return;
2526 }
2527 setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, strLen === 9 ? parseInt(str.slice(7), 16) / 0xff : 1);
2528 putToCache(colorStr, rgbaArr);
2529 return rgbaArr;
2530 }
2531 return;
2532 }
2533 var op = str.indexOf('(');
2534 var ep = str.indexOf(')');
2535 if (op !== -1 && ep + 1 === strLen) {
2536 var fname = str.substr(0, op);
2537 var params = str.substr(op + 1, ep - (op + 1)).split(',');
2538 var alpha = 1;
2539 switch (fname) {
2540 case 'rgba':
2541 if (params.length !== 4) {
2542 return params.length === 3
2543 ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1)
2544 : setRgba(rgbaArr, 0, 0, 0, 1);
2545 }
2546 alpha = parseCssFloat(params.pop());
2547 case 'rgb':
2548 if (params.length !== 3) {
2549 setRgba(rgbaArr, 0, 0, 0, 1);
2550 return;

Callers 10

interpolateTransformFunction · 0.85
parseSpecifierFunction · 0.85
liftFunction · 0.85
toHexFunction · 0.85
lerp$1Function · 0.85
modifyHSLFunction · 0.85
modifyAlphaFunction · 0.85
lumFunction · 0.85
sample_echarts.jsFile · 0.85
setVisualToOptionFunction · 0.85

Calls 6

copyRgbaFunction · 0.85
putToCacheFunction · 0.85
setRgbaFunction · 0.85
parseCssFloatFunction · 0.85
parseCssIntFunction · 0.85
hsla2rgbaFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…