2018-11-30 01:35:21 +00:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
(() => {
|
|
|
|
if (!Object.entries) {
|
|
|
|
Object.entries = obj => Object.keys(obj).map(k => [k, obj[k]]);
|
|
|
|
}
|
|
|
|
if (!Object.values) {
|
|
|
|
Object.values = obj => Object.keys(obj).map(k => obj[k]);
|
|
|
|
}
|
|
|
|
if (typeof document === 'object') {
|
|
|
|
const ELEMENT_METH = {
|
|
|
|
append: {
|
|
|
|
base: [Element, Document, DocumentFragment],
|
|
|
|
fn: (node, frag) => {
|
|
|
|
node.appendChild(frag);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
prepend: {
|
|
|
|
base: [Element, Document, DocumentFragment],
|
|
|
|
fn: (node, frag) => {
|
|
|
|
node.insertBefore(frag, node.firstChild);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
before: {
|
|
|
|
base: [Element, CharacterData, DocumentType],
|
|
|
|
fn: (node, frag) => {
|
|
|
|
node.parentNode.insertBefore(frag, node);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
after: {
|
|
|
|
base: [Element, CharacterData, DocumentType],
|
|
|
|
fn: (node, frag) => {
|
|
|
|
node.parentNode.insertBefore(frag, node.nextSibling);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
for (const [key, {base, fn}] of Object.entries(ELEMENT_METH)) {
|
|
|
|
for (const cls of base) {
|
|
|
|
if (cls.prototype[key]) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
cls.prototype[key] = function (...nodes) {
|
|
|
|
const frag = document.createDocumentFragment();
|
|
|
|
for (const node of nodes) {
|
|
|
|
frag.appendChild(typeof node === 'string' ? document.createTextNode(node) : node);
|
|
|
|
}
|
|
|
|
fn(this, frag);
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2019-06-20 19:35:41 +00:00
|
|
|
try {
|
|
|
|
if (!localStorage) {
|
|
|
|
throw new Error('localStorage is null');
|
|
|
|
}
|
|
|
|
localStorage._access_check = 1;
|
|
|
|
delete localStorage._access_check;
|
|
|
|
} catch (err) {
|
|
|
|
Object.defineProperty(self, 'localStorage', {value: {}});
|
|
|
|
}
|
|
|
|
try {
|
|
|
|
if (!sessionStorage) {
|
|
|
|
throw new Error('sessionStorage is null');
|
|
|
|
}
|
|
|
|
sessionStorage._access_check = 1;
|
|
|
|
delete sessionStorage._access_check;
|
|
|
|
} catch (err) {
|
|
|
|
Object.defineProperty(self, 'sessionStorage', {value: {}});
|
|
|
|
}
|
2018-11-30 01:35:21 +00:00
|
|
|
})();
|