From cd3fe52dbf8b677c1feb1ee3c3aa5c09d821d07b Mon Sep 17 00:00:00 2001 From: Daniel Freedman Date: Tue, 20 Jan 2015 16:08:07 -0800 Subject: [PATCH] Wrap SVGElement.ownerSVGElement Fixes #159 --- src/ShadowDOM/wrappers/SVGElement.js | 3 +++ tests/ShadowDOM/js/SVGElement.js | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/ShadowDOM/wrappers/SVGElement.js b/src/ShadowDOM/wrappers/SVGElement.js index 366d3fa..5611d87 100644 --- a/src/ShadowDOM/wrappers/SVGElement.js +++ b/src/ShadowDOM/wrappers/SVGElement.js @@ -14,6 +14,7 @@ var Element = scope.wrappers.Element; var HTMLElement = scope.wrappers.HTMLElement; var registerObject = scope.registerObject; + var defineWrapGetter = scope.defineWrapGetter; var SVG_NS = 'http://www.w3.org/2000/svg'; var svgTitleElement = document.createElementNS(SVG_NS, 'title'); @@ -30,5 +31,7 @@ delete Element.prototype.classList; } + defineWrapGetter(SVGElement, 'ownerSVGElement'); + scope.wrappers.SVGElement = SVGElement; })(window.ShadowDOMPolyfill); diff --git a/tests/ShadowDOM/js/SVGElement.js b/tests/ShadowDOM/js/SVGElement.js index 3c889f4..324a322 100644 --- a/tests/ShadowDOM/js/SVGElement.js +++ b/tests/ShadowDOM/js/SVGElement.js @@ -72,4 +72,17 @@ suite('SVGElement', function() { } }); + test('ownerSVGElement', function() { + var el = document.createElementNS(SVG_NS, 'svg'); + var el2 = document.createElementNS(SVG_NS,'svg'); + var g = document.createElementNS(SVG_NS, 'g'); + el.appendChild(g); + + assert.equal(g.ownerSVGElement, el); + + el2.appendChild(g); + + assert.equal(g.ownerSVGElement, el2); + }); + });