From ba1453fa1b2793baf18583387564706f60f17da4 Mon Sep 17 00:00:00 2001 From: surunzi Date: Sun, 2 Sep 2018 01:37:22 +0800 Subject: [PATCH] Fix unexpected token \t in JSON --- eustia/escapeJsonStr.js | 4 +- src/Elements/Elements.js | 9 +- src/lib/stringifyUtil.js | 374 ++++++++++++++++++++------------------- src/lib/util.js | 198 +++++++++++---------- 4 files changed, 297 insertions(+), 288 deletions(-) diff --git a/eustia/escapeJsonStr.js b/eustia/escapeJsonStr.js index 88033f2..81a2e23 100644 --- a/eustia/escapeJsonStr.js +++ b/eustia/escapeJsonStr.js @@ -4,5 +4,7 @@ _('escapeJsStr') function exports(str) { - return escapeJsStr(str).replace(/\\'/g, "'") + return escapeJsStr(str) + .replace(/\\'/g, "'") + .replace(/\t/g, '\\t') } diff --git a/src/Elements/Elements.js b/src/Elements/Elements.js index 66ce931..d8e16f3 100644 --- a/src/Elements/Elements.js +++ b/src/Elements/Elements.js @@ -168,9 +168,12 @@ export default class Elements extends Tool { } }) .on('click', '.eruda-breadcrumb', () => { - let data = - this._elData || - JSON.parse(stringify(this._curEl, { getterVal: true })) + let data = this._elData + + if (!data) { + data = stringify(this._curEl, { getterVal: true }) + data = JSON.parse(data) + } let sources = container.get('sources') this._elData = data diff --git a/src/lib/stringifyUtil.js b/src/lib/stringifyUtil.js index a823bdb..d80b080 100644 --- a/src/lib/stringifyUtil.js +++ b/src/lib/stringifyUtil.js @@ -1,11 +1,11 @@ // Built by eustia. -"use strict"; +"use strict"; -var _ = {}; +var _ = {}; -/* ------------------------------ allKeys ------------------------------ */ +/* ------------------------------ allKeys ------------------------------ */ -export var allKeys = _.allKeys = (function () { +export var allKeys = _.allKeys = (function () { /* Retrieve all the names of object's own and inherited properties. * * |Name |Type |Desc | @@ -34,14 +34,14 @@ export var allKeys = _.allKeys = (function () { for (key in obj) ret.push(key); return ret; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ idxOf ------------------------------ */ +/* ------------------------------ idxOf ------------------------------ */ -export var idxOf = _.idxOf = (function () { +export var idxOf = _.idxOf = (function () { /* Get the index at which the first occurrence of value. * * |Name |Type |Desc | @@ -62,14 +62,14 @@ export var idxOf = _.idxOf = (function () { function exports(arr, val, fromIdx) { return Array.prototype.indexOf.call(arr, val, fromIdx); - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ isUndef ------------------------------ */ +/* ------------------------------ isUndef ------------------------------ */ -export var isUndef = _.isUndef = (function () { +export var isUndef = _.isUndef = (function () { /* Check if value is undefined. * * |Name |Type |Desc | @@ -90,14 +90,14 @@ export var isUndef = _.isUndef = (function () { function exports(val) { return val === void 0; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ optimizeCb ------------------------------ */ +/* ------------------------------ optimizeCb ------------------------------ */ -export var optimizeCb = _.optimizeCb = (function () { +export var optimizeCb = _.optimizeCb = (function () { /* Used for function context binding. */ @@ -131,14 +131,14 @@ export var optimizeCb = _.optimizeCb = (function () { return function() { return fn.apply(ctx, arguments); }; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ endWith ------------------------------ */ +/* ------------------------------ endWith ------------------------------ */ -export var endWith = _.endWith = (function () { +export var endWith = _.endWith = (function () { /* Check if string ends with the given target string. * * |Name |Type |Desc | @@ -161,14 +161,14 @@ export var endWith = _.endWith = (function () { var idx = str.length - suffix.length; return idx >= 0 && str.indexOf(suffix, idx) === idx; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ toStr ------------------------------ */ +/* ------------------------------ toStr ------------------------------ */ -export var toStr = _.toStr = (function () { +export var toStr = _.toStr = (function () { /* Convert value to a string. * * |Name |Type |Desc | @@ -191,14 +191,14 @@ export var toStr = _.toStr = (function () { function exports(val) { return val == null ? '' : val.toString(); - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ escapeJsStr ------------------------------ */ +/* ------------------------------ escapeJsStr ------------------------------ */ -export var escapeJsStr = _.escapeJsStr = (function () { +export var escapeJsStr = _.escapeJsStr = (function () { /* Escape string to be a valid JavaScript string literal between quotes. * * http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4 @@ -243,31 +243,33 @@ export var escapeJsStr = _.escapeJsStr = (function () { }); } - var regEscapeChars = /["'\\\n\r\u2028\u2029]/g; + var regEscapeChars = /["'\\\n\r\u2028\u2029]/g; - return exports; -})(); + return exports; +})(); -/* ------------------------------ escapeJsonStr ------------------------------ */ +/* ------------------------------ escapeJsonStr ------------------------------ */ -export var escapeJsonStr = _.escapeJsonStr = (function () { - /* Escape json string. +export var escapeJsonStr = _.escapeJsonStr = (function () { + /* Escape json string. */ /* dependencies * escapeJsStr - */ + */ - function exports(str) { - return escapeJsStr(str).replace(/\\'/g, "'"); - } + function exports(str) { + return escapeJsStr(str) + .replace(/\\'/g, "'") + .replace(/\t/g, '\\t') + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ has ------------------------------ */ +/* ------------------------------ has ------------------------------ */ -export var has = _.has = (function () { +export var has = _.has = (function () { /* Checks if key is a direct property. * * |Name |Type |Desc | @@ -290,14 +292,14 @@ export var has = _.has = (function () { function exports(obj, key) { return hasOwnProp.call(obj, key); - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ identity ------------------------------ */ +/* ------------------------------ identity ------------------------------ */ -export var identity = _.identity = (function () { +export var identity = _.identity = (function () { /* Return the first argument given. * * |Name |Type|Desc | @@ -317,14 +319,14 @@ export var identity = _.identity = (function () { function exports(val) { return val; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ objToStr ------------------------------ */ +/* ------------------------------ objToStr ------------------------------ */ -export var objToStr = _.objToStr = (function () { +export var objToStr = _.objToStr = (function () { /* Alias of Object.prototype.toString. * * |Name |Type |Desc | @@ -346,14 +348,14 @@ export var objToStr = _.objToStr = (function () { function exports(val) { return ObjToStr.call(val); - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ isArgs ------------------------------ */ +/* ------------------------------ isArgs ------------------------------ */ -export var isArgs = _.isArgs = (function () { +export var isArgs = _.isArgs = (function () { /* Check if value is classified as an arguments object. * * |Name |Type |Desc | @@ -379,14 +381,14 @@ export var isArgs = _.isArgs = (function () { function exports(val) { return objToStr(val) === '[object Arguments]'; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ isArr ------------------------------ */ +/* ------------------------------ isArr ------------------------------ */ -export var isArr = _.isArr = (function (exports) { +export var isArr = _.isArr = (function (exports) { /* Check if value is an `Array` object. * * |Name |Type |Desc | @@ -413,14 +415,14 @@ export var isArr = _.isArr = (function (exports) { Array.isArray || function(val) { return objToStr(val) === '[object Array]'; - }; + }; - return exports; -})({}); + return exports; +})({}); -/* ------------------------------ isNum ------------------------------ */ +/* ------------------------------ isNum ------------------------------ */ -export var isNum = _.isNum = (function () { +export var isNum = _.isNum = (function () { /* Check if value is classified as a Number primitive or object. * * |Name |Type |Desc | @@ -446,14 +448,14 @@ export var isNum = _.isNum = (function () { function exports(val) { return objToStr(val) === '[object Number]'; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ isFn ------------------------------ */ +/* ------------------------------ isFn ------------------------------ */ -export var isFn = _.isFn = (function () { +export var isFn = _.isFn = (function () { /* Check if value is a function. * * |Name |Type |Desc | @@ -485,14 +487,14 @@ export var isFn = _.isFn = (function () { objStr === '[object Function]' || objStr === '[object GeneratorFunction]' ); - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ isArrLike ------------------------------ */ +/* ------------------------------ isArrLike ------------------------------ */ -export var isArrLike = _.isArrLike = (function () { +export var isArrLike = _.isArrLike = (function () { /* Check if value is array-like. * * |Name |Type |Desc | @@ -526,14 +528,14 @@ export var isArrLike = _.isArrLike = (function () { var len = val.length; return isNum(len) && len >= 0 && len <= MAX_ARR_IDX && !isFn(val); - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ isBrowser ------------------------------ */ +/* ------------------------------ isBrowser ------------------------------ */ -export var isBrowser = _.isBrowser = (function (exports) { +export var isBrowser = _.isBrowser = (function (exports) { /* Check if running in a browser. * * ```javascript @@ -549,14 +551,14 @@ export var isBrowser = _.isBrowser = (function (exports) { exports = typeof window === 'object' && typeof document === 'object' && - document.nodeType === 9; + document.nodeType === 9; - return exports; -})({}); + return exports; +})({}); -/* ------------------------------ root ------------------------------ */ +/* ------------------------------ root ------------------------------ */ -export var root = _.root = (function (exports) { +export var root = _.root = (function (exports) { /* Root object reference, `global` in nodeJs, `window` in browser. */ /* module @@ -568,14 +570,14 @@ export var root = _.root = (function (exports) { * isBrowser */ - exports = isBrowser ? window : global; + exports = isBrowser ? window : global; - return exports; -})({}); + return exports; +})({}); -/* ------------------------------ detectMocha ------------------------------ */ +/* ------------------------------ detectMocha ------------------------------ */ -export var detectMocha = _.detectMocha = (function () { +export var detectMocha = _.detectMocha = (function () { /* Detect if mocha is running. * * ```javascript @@ -602,14 +604,14 @@ export var detectMocha = _.detectMocha = (function () { return true; } - var methods = ['afterEach', 'after', 'beforeEach', 'before', 'describe', 'it']; + var methods = ['afterEach', 'after', 'beforeEach', 'before', 'describe', 'it']; - return exports; -})(); + return exports; +})(); -/* ------------------------------ keys ------------------------------ */ +/* ------------------------------ keys ------------------------------ */ -export var keys = _.keys = (function (exports) { +export var keys = _.keys = (function (exports) { /* Create an array of the own enumerable property names of object. * * |Name |Type |Desc | @@ -644,14 +646,14 @@ export var keys = _.keys = (function (exports) { return ret; }; - } + } - return exports; -})({}); + return exports; +})({}); -/* ------------------------------ each ------------------------------ */ +/* ------------------------------ each ------------------------------ */ -export var each = _.each = (function () { +export var each = _.each = (function () { /* Iterate over elements of collection and invokes iteratee for each element. * * |Name |Type |Desc | @@ -689,14 +691,14 @@ export var each = _.each = (function () { } return obj; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ createAssigner ------------------------------ */ +/* ------------------------------ createAssigner ------------------------------ */ -export var createAssigner = _.createAssigner = (function () { +export var createAssigner = _.createAssigner = (function () { /* Used to create extend, extendOwn and defaults. * * |Name |Type |Desc | @@ -729,14 +731,14 @@ export var createAssigner = _.createAssigner = (function () { return obj; }; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ extend ------------------------------ */ +/* ------------------------------ extend ------------------------------ */ -export var extend = _.extend = (function (exports) { +export var extend = _.extend = (function (exports) { /* Copy all of the properties in the source objects over to the destination object. * * |Name |Type |Desc | @@ -759,14 +761,14 @@ export var extend = _.extend = (function (exports) { * createAssigner allKeys */ - exports = createAssigner(allKeys); + exports = createAssigner(allKeys); - return exports; -})({}); + return exports; +})({}); -/* ------------------------------ values ------------------------------ */ +/* ------------------------------ values ------------------------------ */ -export var values = _.values = (function () { +export var values = _.values = (function () { /* Create an array of the own enumerable property values of object. * * |Name |Type |Desc | @@ -796,14 +798,14 @@ export var values = _.values = (function () { }); return ret; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ contain ------------------------------ */ +/* ------------------------------ contain ------------------------------ */ -export var contain = _.contain = (function () { +export var contain = _.contain = (function () { /* Check if the value is present in the list. * * |Name |Type |Desc | @@ -831,14 +833,14 @@ export var contain = _.contain = (function () { if (!isArrLike(arr)) arr = values(arr); return idxOf(arr, val) >= 0; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ extendOwn ------------------------------ */ +/* ------------------------------ extendOwn ------------------------------ */ -export var extendOwn = _.extendOwn = (function (exports) { +export var extendOwn = _.extendOwn = (function (exports) { /* Like extend, but only copies own properties over to the destination object. * * |Name |Type |Desc | @@ -861,14 +863,14 @@ export var extendOwn = _.extendOwn = (function (exports) { * keys createAssigner */ - exports = createAssigner(keys); + exports = createAssigner(keys); - return exports; -})({}); + return exports; +})({}); -/* ------------------------------ isStr ------------------------------ */ +/* ------------------------------ isStr ------------------------------ */ -export var isStr = _.isStr = (function () { +export var isStr = _.isStr = (function () { /* Check if value is a string primitive. * * |Name |Type |Desc | @@ -892,14 +894,14 @@ export var isStr = _.isStr = (function () { function exports(val) { return objToStr(val) === '[object String]'; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ isEmpty ------------------------------ */ +/* ------------------------------ isEmpty ------------------------------ */ -export var isEmpty = _.isEmpty = (function () { +export var isEmpty = _.isEmpty = (function () { /* Check if value is an empty object or array. * * |Name |Type |Desc | @@ -931,14 +933,14 @@ export var isEmpty = _.isEmpty = (function () { } return keys(val).length === 0; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ isMatch ------------------------------ */ +/* ------------------------------ isMatch ------------------------------ */ -export var isMatch = _.isMatch = (function () { +export var isMatch = _.isMatch = (function () { /* Check if keys and values in src are contained in obj. * * |Name |Type |Desc | @@ -975,14 +977,14 @@ export var isMatch = _.isMatch = (function () { } return true; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ isObj ------------------------------ */ +/* ------------------------------ isObj ------------------------------ */ -export var isObj = _.isObj = (function () { +export var isObj = _.isObj = (function () { /* Check if value is the language type of Object. * * |Name |Type |Desc | @@ -1007,14 +1009,14 @@ export var isObj = _.isObj = (function () { var type = typeof val; return !!val && (type === 'function' || type === 'object'); - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ isRegExp ------------------------------ */ +/* ------------------------------ isRegExp ------------------------------ */ -export var isRegExp = _.isRegExp = (function () { +export var isRegExp = _.isRegExp = (function () { /* Check if value is a regular expression. * * |Name |Type |Desc | @@ -1038,14 +1040,14 @@ export var isRegExp = _.isRegExp = (function () { function exports(val) { return objToStr(val) === '[object RegExp]'; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ last ------------------------------ */ +/* ------------------------------ last ------------------------------ */ -export var last = _.last = (function () { +export var last = _.last = (function () { /* Get the last element of array. * * |Name |Type |Desc | @@ -1067,14 +1069,14 @@ export var last = _.last = (function () { var len = arr ? arr.length : 0; if (len) return arr[len - 1]; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ matcher ------------------------------ */ +/* ------------------------------ matcher ------------------------------ */ -export var matcher = _.matcher = (function () { +export var matcher = _.matcher = (function () { /* Return a predicate function that checks if attrs are contained in an object. * * |Name |Type |Desc | @@ -1106,14 +1108,14 @@ export var matcher = _.matcher = (function () { return function(obj) { return isMatch(obj, attrs); }; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ safeCb ------------------------------ */ +/* ------------------------------ safeCb ------------------------------ */ -export var safeCb = _.safeCb = (function (exports) { +export var safeCb = _.safeCb = (function (exports) { /* Create callback based on input value. */ @@ -1138,14 +1140,14 @@ export var safeCb = _.safeCb = (function (exports) { return obj == null ? undefined : obj[key]; }; }; - }; + }; - return exports; -})({}); + return exports; +})({}); -/* ------------------------------ filter ------------------------------ */ +/* ------------------------------ filter ------------------------------ */ -export var filter = _.filter = (function () { +export var filter = _.filter = (function () { /* Iterates over elements of collection, returning an array of all the values that pass a truth test. * * |Name |Type |Desc | @@ -1182,14 +1184,14 @@ export var filter = _.filter = (function () { }); return ret; - } + } - return exports; -})(); + return exports; +})(); -/* ------------------------------ uniqId ------------------------------ */ +/* ------------------------------ uniqId ------------------------------ */ -export var uniqId = _.uniqId = (function () { +export var uniqId = _.uniqId = (function () { /* Generate a globally-unique id. * * |Name |Type |Desc | @@ -1213,9 +1215,9 @@ export var uniqId = _.uniqId = (function () { var id = ++idCounter + ''; return prefix ? prefix + id : id; - } + } - return exports; -})(); + return exports; +})(); export default _; \ No newline at end of file diff --git a/src/lib/util.js b/src/lib/util.js index d5270e1..14713e1 100644 --- a/src/lib/util.js +++ b/src/lib/util.js @@ -1250,15 +1250,17 @@ export var escapeJsStr = _.escapeJsStr = (function () { /* ------------------------------ escapeJsonStr ------------------------------ */ export var escapeJsonStr = _.escapeJsonStr = (function () { - /* Escape json string. + /* Escape json string. */ /* dependencies * escapeJsStr - */ + */ - function exports(str) { - return escapeJsStr(str).replace(/\\'/g, "'") + function exports(str) { + return escapeJsStr(str) + .replace(/\\'/g, "'") + .replace(/\t/g, '\\t') } return exports; @@ -1360,21 +1362,21 @@ export var startWith = _.startWith = (function () { /* ------------------------------ fullUrl ------------------------------ */ export var fullUrl = _.fullUrl = (function () { - /* Add origin to url if needed. + /* Add origin to url if needed. */ /* dependencies * startWith - */ + */ - let origin = window.location.origin + let origin = window.location.origin - function exports(url) { - if (startWith(url, 'http')) return url + function exports(url) { + if (startWith(url, 'http')) return url - if (!startWith(url, '/')) url = '/' + url + if (!startWith(url, '/')) url = '/' + url - return origin + url + return origin + url } return exports; @@ -1412,17 +1414,17 @@ export var upperFirst = _.upperFirst = (function () { /* ------------------------------ getObjType ------------------------------ */ export var getObjType = _.getObjType = (function () { - /* Get object type. + /* Get object type. */ /* dependencies * upperFirst - */ + */ - function exports(obj) { - if (obj.constructor && obj.constructor.name) return obj.constructor.name + function exports(obj) { + if (obj.constructor && obj.constructor.name) return obj.constructor.name - return upperFirst({}.toString.call(obj).replace(/(\[object )|]/g, '')) + return upperFirst({}.toString.call(obj).replace(/(\[object )|]/g, '')) } return exports; @@ -2198,17 +2200,17 @@ export var isBool = _.isBool = (function () { /* ------------------------------ isCrossOrig ------------------------------ */ export var isCrossOrig = _.isCrossOrig = (function () { - /* Check if a url is cross origin. + /* Check if a url is cross origin. */ /* dependencies * startWith - */ + */ - var origin = window.location.origin + let origin = window.location.origin - function exports(url) { - return !startWith(url, origin) + function exports(url) { + return !startWith(url, origin) } return exports; @@ -2275,20 +2277,20 @@ export var isErr = _.isErr = (function () { /* ------------------------------ isErudaEl ------------------------------ */ export var isErudaEl = _.isErudaEl = (function () { - /* See if an element is within eruda. - */ + /* See if an element is within eruda. + */ - function exports(el) { - var parentNode = el.parentNode + function exports(el) { + let parentNode = el.parentNode - if (!parentNode) return false + if (!parentNode) return false - while (parentNode) { - parentNode = parentNode.parentNode - if (parentNode && parentNode.id === 'eruda') return true - } + while (parentNode) { + parentNode = parentNode.parentNode + if (parentNode && parentNode.id === 'eruda') return true + } - return false + return false } return exports; @@ -3211,54 +3213,54 @@ export var filter = _.filter = (function () { /* ------------------------------ evalCss ------------------------------ */ export var evalCss = _.evalCss = (function () { - /* Eval css. + /* Eval css. */ /* dependencies * toStr each filter - */ + */ - var styleList = [], - scale = 1 + let styleList = [] + let scale = 1 - function exports(css, container) { - css = toStr(css) + function exports(css, container) { + css = toStr(css) - for (var i = 0, len = styleList.length; i < len; i++) { - if (styleList[i].css === css) return - } + for (let i = 0, len = styleList.length; i < len; i++) { + if (styleList[i].css === css) return + } - container = container || exports.container || document.head - const el = document.createElement('style') + container = container || exports.container || document.head + const el = document.createElement('style') - el.type = 'text/css' - container.appendChild(el) + el.type = 'text/css' + container.appendChild(el) - let style = { css, el, container } - resetStyle(style) - styleList.push(style) + let style = { css, el, container } + resetStyle(style) + styleList.push(style) - return style - } + return style + } - exports.setScale = function(s) { - scale = s - each(styleList, style => resetStyle(style)) - } + exports.setScale = function(s) { + scale = s + each(styleList, style => resetStyle(style)) + } - exports.clear = function() { - each(styleList, ({ container, el }) => container.removeChild(el)) - styleList = [] - } + exports.clear = function() { + each(styleList, ({ container, el }) => container.removeChild(el)) + styleList = [] + } - exports.remove = function(style) { - styleList = filter(styleList, s => s !== style) + exports.remove = function(style) { + styleList = filter(styleList, s => s !== style) - style.container.removeChild(style.el) - } + style.container.removeChild(style.el) + } - function resetStyle({ css, el }) { - el.innerText = css.replace(/(\d+)px/g, ($0, $1) => +$1 * scale + 'px') + function resetStyle({ css, el }) { + el.innerText = css.replace(/(\d+)px/g, ($0, $1) => +$1 * scale + 'px') } return exports; @@ -5160,40 +5162,40 @@ export var memStorage = _.memStorage = (function (exports) { /* ------------------------------ safeStorage ------------------------------ */ export var safeStorage = _.safeStorage = (function () { - /* Safe localStorage and sessionStorage. + /* Safe localStorage and sessionStorage. */ /* dependencies * isUndef memStorage - */ + */ - function exports(type, memReplacement) { - if (isUndef(memReplacement)) memReplacement = true + function exports(type, memReplacement) { + if (isUndef(memReplacement)) memReplacement = true - var ret + let ret - switch (type) { - case 'local': - ret = window.localStorage - break - case 'session': - ret = window.sessionStorage - break - } + switch (type) { + case 'local': + ret = window.localStorage + break + case 'session': + ret = window.sessionStorage + break + } - try { - // Safari private browsing - var x = 'test-localStorage-' + Date.now() - ret.setItem(x, x) - var y = ret.getItem(x) - ret.removeItem(x) - if (y !== x) throw new Error() - } catch (e) { - if (memReplacement) return memStorage - return - } + try { + // Safari private browsing + let x = 'test-localStorage-' + Date.now() + ret.setItem(x, x) + let y = ret.getItem(x) + ret.removeItem(x) + if (y !== x) throw new Error() + } catch (e) { + if (memReplacement) return memStorage + return + } - return ret + return ret } return exports; @@ -6303,15 +6305,15 @@ export var perfNow = _.perfNow = (function (exports) { /* ------------------------------ pxToNum ------------------------------ */ export var pxToNum = _.pxToNum = (function () { - /* Turn string like '0px' to number. + /* Turn string like '0px' to number. */ /* dependencies * toNum - */ + */ - function exports(str) { - return toNum(str.replace('px', '')) + function exports(str) { + return toNum(str.replace('px', '')) } return exports; @@ -6482,19 +6484,19 @@ export var trim = _.trim = (function () { /* ------------------------------ getFileName ------------------------------ */ export var getFileName = _.getFileName = (function () { - /* Extract file name from url. + /* Extract file name from url. */ /* dependencies * last trim - */ + */ - function exports(url) { - var ret = last(url.split('/')) + function exports(url) { + let ret = last(url.split('/')) - if (ret.indexOf('?') > -1) ret = trim(ret.split('?')[0]) + if (ret.indexOf('?') > -1) ret = trim(ret.split('?')[0]) - return ret === '' ? 'unknown' : ret + return ret === '' ? 'unknown' : ret } return exports;