UNPKG

glam

Version:

inline css for your jsx

52 lines (47 loc) 1.73 kB
'use strict'; function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } var nullRule = {}; var inputCaches = typeof WeakMap !== 'undefined' ? [nullRule, new WeakMap(), new WeakMap(), new WeakMap()] : [nullRule]; var warnedWeakMapError = false; function multiIndexCache(fn) { return function (args) { if (inputCaches[args.length]) { var coi = inputCaches[args.length]; var ctr = 0; while (ctr < args.length - 1) { if (!coi.has(args[ctr])) { coi.set(args[ctr], new WeakMap()); } coi = coi.get(args[ctr]); ctr++; } if (coi.has(args[args.length - 1])) { var ret = coi.get(args[ctr]); if (registered[ret.toString().substring(4)]) { // make sure it hasn't been flushed return ret; } } } var value = fn(args); if (inputCaches[args.length]) { var _ctr = 0, _coi = inputCaches[args.length]; while (_ctr < args.length - 1) { _coi = _coi.get(args[_ctr]); _ctr++; } try { _coi.set(args[_ctr], value); } catch (err) { if (process.env.NODE_ENV !== 'production' && !warnedWeakMapError) { var _console; warnedWeakMapError = true; (_console = console).warn.apply(_console, ['failed setting the WeakMap cache for args:'].concat(_toConsumableArray(args))); // eslint-disable-line no-console console.warn('this should NOT happen, please file a bug on the github repo.'); // eslint-disable-line no-console } } } return value; }; }