summaryrefslogtreecommitdiffstats
path: root/src/parser.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser.js')
-rw-r--r--src/parser.js32
1 files changed, 17 insertions, 15 deletions
diff --git a/src/parser.js b/src/parser.js
index c51ad71..9a64dbc 100644
--- a/src/parser.js
+++ b/src/parser.js
@@ -1,6 +1,22 @@
import Doc from './Doc.js'
-let parser = function () {
+export default function parser () {
+
+ // Reuse cached element if possible
+ if (!parser.nodes) {
+ let svg = new Doc().size(2, 0).css({
+ opacity: 0,
+ position: 'absolute',
+ left: '-100%',
+ top: '-100%',
+ overflow: 'hidden'
+ })
+
+ let path = svg.path().node
+
+ parser.nodes = {svg, path}
+ }
+
if (!parser.nodes.svg.node.parentNode) {
let b = document.body || document.documentElement
parser.nodes.svg.addTo(b)
@@ -8,17 +24,3 @@ let parser = function () {
return parser.nodes
}
-
-parser.nodes = {
- svg: new Doc().size(2, 0).css({
- opacity: 0,
- position: 'absolute',
- left: '-100%',
- top: '-100%',
- overflow: 'hidden'
- })
-}
-
-parser.nodes.path = parser.nodes.svg.path().node
-
-export default parser