code: function createPathOptions(str, opts) {
      var pathProxy = createPathProxyFromString(str);
      opts = opts || {};
      opts.buildPath = function (path) {
          if (path.setData) {
              path.setData(pathProxy.data);
              // Svg and vml renderer don't have context
              var ctx = path.getContext();
              if (ctx) {
                  path.rebuildPath(ctx);
              }
          }
          else {
              var ctx = path;
              pathProxy.rebuildPath(ctx);
          }
      };
  
      opts.applyTransform = function (m) {
          transformPath(pathProxy, m);
          this.dirty(true);
      };
  
      return opts;
  }
docs: TODO Optimize double memory cost problem