diff --git a/src/__tests__/styled.test.js b/src/__tests__/styled.test.js index 19bdea46..db320b54 100644 --- a/src/__tests__/styled.test.js +++ b/src/__tests__/styled.test.js @@ -28,7 +28,7 @@ describe('styled', () => { expect(() => styled()()()).toThrow(); setup(pragma); - const vnode = styled('div')``(); + const vnode = styled('div')``({}); expect(pragma).toBeCalledTimes(1); expect(vnode).toMatchVNode('div', { @@ -75,7 +75,7 @@ describe('styled', () => { `; // Simulate a render - let vnode = Tag(); + let vnode = Tag({}); expect(vnode).toMatchVNode('tag', { className: 'go' }); // Simulate a render with @@ -84,7 +84,7 @@ describe('styled', () => { expect(vnode).toMatchVNode('foo', { className: 'go' }); // Simulate a render - vnode = Tag(); + vnode = Tag({}); expect(vnode).toMatchVNode('tag', { className: 'go' }); }); diff --git a/src/core/astish.js b/src/core/astish.js index 6a7eb1df..c1b15edd 100644 --- a/src/core/astish.js +++ b/src/core/astish.js @@ -8,10 +8,7 @@ let empty = ' '; * @param {String} val * @returns {Object} */ -export let astish = (val) => { - let tree = [{}]; - let block, left; - +export let astish = (val, tree = [{}], block, left) => { while ((block = newRule.exec(val.replace(ruleClean, '')))) { // Remove the current entry if (block[4]) { diff --git a/src/core/hash.js b/src/core/hash.js index c660440a..681267bc 100644 --- a/src/core/hash.js +++ b/src/core/hash.js @@ -13,14 +13,12 @@ let cache = {}; * @param {Object} data * @returns {String} */ -let stringify = (data) => { +let stringify = (data, out = '') => { if (typeof data == 'object') { - let out = ''; for (let p in data) out += p + stringify(data[p]); - return out; - } else { - return data; + data = out; } + return data; }; /** @@ -53,14 +51,18 @@ export let hash = (compiled, sheet, global, append, keyframes) => { ); } - // If the global flag is set, save the current stringified and compiled CSS to `cache.g` - // to allow replacing styles in