     ## return values like {filename: ...} and JSX virtual dom elements,
     ## in addition to raw SVG strings.
     string = JSON.stringify result
-    if string of @versions
-      @versions[string]
-    else
+    unless string of @versions
+      version = @nversions++
       @versions[string] =
-        Symbol.parse "#{@key}-v#{@nversions++}", result, @dirname
+        Symbol.parse "#{@key}$v#{version}", result, @dirname
+      @versions[string].id = => "#{escapeId @key}$v#{version}"
+    @versions[string]
   usesContext: true
 
 ## Symbol to fall back to when encountering an unrecognized symbol.

  includes: (substring) ->
    @key.indexOf(substring) >= 0
    ## ECMA6: @key.includes substring

zeroSizeReplacement = 1


    @xml.documentElement.removeAttribute 'height' if @autoHeight
    @zIndex = zIndex @xml.documentElement
  id: ->
    escapeId @key
  use: -> @  ## do nothing for static symbol
  usesContext: false

