Merge pull request #179 from azakus/wrap-ownersvgelement

Make broken descriptors configurable on Safari
This commit is contained in:
Daniel Freedman
2015-01-28 15:23:51 -08:00
3 changed files with 19 additions and 1 deletions

View File

@@ -226,10 +226,13 @@ window.ShadowDOMPolyfill = {};
setter = getSetter(name);
}
// make all descriptors configurable on broken safari
var configurable = isBrokenSafari || descriptor.configurable;
defineProperty(target, name, {
get: getter,
set: setter,
configurable: descriptor.configurable,
configurable: configurable,
enumerable: descriptor.enumerable
});
}

View File

@@ -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);

View File

@@ -72,4 +72,16 @@ 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);
});
});