function SVGNodeContainer(node, native) { this.src = node; this.image = null; var self = this; this.promise = native ? new Promise(function(resolve, reject) { self.image = new Image(); self.image.onload = resolve; self.image.onerror = reject; self.image.src = "data:image/svg+xml," + (new XMLSerializer()).serializeToString(node); if (self.image.complete === true) { resolve(self.image); } }) : this.hasFabric().then(function() { return new Promise(function(resolve) { html2canvas.fabric.parseSVGDocument(node, self.createCanvas.call(self, resolve)); }); }); } SVGNodeContainer.prototype = Object.create(SVGContainer.prototype);