Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(273)

Side by Side Diff: polymer_0.5.4/bower_components/webcomponentsjs/ShadowDOM.js

Issue 895523005: Added Polymer 0.5.4 (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /** 1 /**
2 * @license 2 * @license
3 * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. 3 * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
4 * This code may only be used under the BSD style license found at http://polyme r.github.io/LICENSE.txt 4 * This code may only be used under the BSD style license found at http://polyme r.github.io/LICENSE.txt
5 * The complete set of authors may be found at http://polymer.github.io/AUTHORS. txt 5 * The complete set of authors may be found at http://polymer.github.io/AUTHORS. txt
6 * The complete set of contributors may be found at http://polymer.github.io/CON TRIBUTORS.txt 6 * The complete set of contributors may be found at http://polymer.github.io/CON TRIBUTORS.txt
7 * Code distributed by Google as part of the polymer project is also 7 * Code distributed by Google as part of the polymer project is also
8 * subject to an additional IP rights grant found at http://polymer.github.io/PA TENTS.txt 8 * subject to an additional IP rights grant found at http://polymer.github.io/PA TENTS.txt
9 */ 9 */
10 // @version 0.5.1-1 10 // @version 0.5.4
11 if (typeof WeakMap === "undefined") { 11 if (typeof WeakMap === "undefined") {
12 (function() { 12 (function() {
13 var defineProperty = Object.defineProperty; 13 var defineProperty = Object.defineProperty;
14 var counter = Date.now() % 1e9; 14 var counter = Date.now() % 1e9;
15 var WeakMap = function() { 15 var WeakMap = function() {
16 this.name = "__st" + (Math.random() * 1e9 >>> 0) + (counter++ + "__"); 16 this.name = "__st" + (Math.random() * 1e9 >>> 0) + (counter++ + "__");
17 }; 17 };
18 WeakMap.prototype = { 18 WeakMap.prototype = {
19 set: function(key, value) { 19 set: function(key, value) {
20 var entry = key[this.name]; 20 var entry = key[this.name];
(...skipping 1931 matching lines...) Expand 10 before | Expand all | Expand 10 after
1952 return originalCompareDocumentPosition.call(unsafeUnwrap(this), unwrapIfNe eded(otherNode)); 1952 return originalCompareDocumentPosition.call(unsafeUnwrap(this), unwrapIfNe eded(otherNode));
1953 }, 1953 },
1954 normalize: function() { 1954 normalize: function() {
1955 var nodes = snapshotNodeList(this.childNodes); 1955 var nodes = snapshotNodeList(this.childNodes);
1956 var remNodes = []; 1956 var remNodes = [];
1957 var s = ""; 1957 var s = "";
1958 var modNode; 1958 var modNode;
1959 for (var i = 0, n; i < nodes.length; i++) { 1959 for (var i = 0, n; i < nodes.length; i++) {
1960 n = nodes[i]; 1960 n = nodes[i];
1961 if (n.nodeType === Node.TEXT_NODE) { 1961 if (n.nodeType === Node.TEXT_NODE) {
1962 if (!modNode && !n.data.length) this.removeNode(n); else if (!modNode) modNode = n; else { 1962 if (!modNode && !n.data.length) this.removeChild(n); else if (!modNode ) modNode = n; else {
1963 s += n.data; 1963 s += n.data;
1964 remNodes.push(n); 1964 remNodes.push(n);
1965 } 1965 }
1966 } else { 1966 } else {
1967 if (modNode && remNodes.length) { 1967 if (modNode && remNodes.length) {
1968 modNode.data += s; 1968 modNode.data += s;
1969 cleanupNodes(remNodes); 1969 cleanupNodes(remNodes);
1970 } 1970 }
1971 remNodes = []; 1971 remNodes = [];
1972 s = ""; 1972 s = "";
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
2292 if (this.parentNode) this.parentNode.insertBefore(newTextNode, this.nextSi bling); 2292 if (this.parentNode) this.parentNode.insertBefore(newTextNode, this.nextSi bling);
2293 return newTextNode; 2293 return newTextNode;
2294 } 2294 }
2295 }); 2295 });
2296 registerWrapper(OriginalText, Text, document.createTextNode("")); 2296 registerWrapper(OriginalText, Text, document.createTextNode(""));
2297 scope.wrappers.Text = Text; 2297 scope.wrappers.Text = Text;
2298 })(window.ShadowDOMPolyfill); 2298 })(window.ShadowDOMPolyfill);
2299 2299
2300 (function(scope) { 2300 (function(scope) {
2301 "use strict"; 2301 "use strict";
2302 var setWrapper = scope.setWrapper;
2303 var unsafeUnwrap = scope.unsafeUnwrap; 2302 var unsafeUnwrap = scope.unsafeUnwrap;
2303 var enqueueMutation = scope.enqueueMutation;
2304 function getClass(el) {
2305 return unsafeUnwrap(el).getAttribute("class");
2306 }
2307 function enqueueClassAttributeChange(el, oldValue) {
2308 enqueueMutation(el, "attributes", {
2309 name: "class",
2310 namespace: null,
2311 oldValue: oldValue
2312 });
2313 }
2304 function invalidateClass(el) { 2314 function invalidateClass(el) {
2305 scope.invalidateRendererBasedOnAttribute(el, "class"); 2315 scope.invalidateRendererBasedOnAttribute(el, "class");
2306 } 2316 }
2307 function DOMTokenList(impl, ownerElement) { 2317 function changeClass(tokenList, method, args) {
2308 setWrapper(impl, this); 2318 var ownerElement = tokenList.ownerElement_;
2309 this.ownerElement_ = ownerElement; 2319 if (ownerElement == null) {
2320 return method.apply(tokenList, args);
2321 }
2322 var oldValue = getClass(ownerElement);
2323 var retv = method.apply(tokenList, args);
2324 if (getClass(ownerElement) !== oldValue) {
2325 enqueueClassAttributeChange(ownerElement, oldValue);
2326 invalidateClass(ownerElement);
2327 }
2328 return retv;
2310 } 2329 }
2311 DOMTokenList.prototype = { 2330 var oldAdd = DOMTokenList.prototype.add;
2312 constructor: DOMTokenList, 2331 DOMTokenList.prototype.add = function() {
2313 get length() { 2332 changeClass(this, oldAdd, arguments);
2314 return unsafeUnwrap(this).length;
2315 },
2316 item: function(index) {
2317 return unsafeUnwrap(this).item(index);
2318 },
2319 contains: function(token) {
2320 return unsafeUnwrap(this).contains(token);
2321 },
2322 add: function() {
2323 unsafeUnwrap(this).add.apply(unsafeUnwrap(this), arguments);
2324 invalidateClass(this.ownerElement_);
2325 },
2326 remove: function() {
2327 unsafeUnwrap(this).remove.apply(unsafeUnwrap(this), arguments);
2328 invalidateClass(this.ownerElement_);
2329 },
2330 toggle: function(token) {
2331 var rv = unsafeUnwrap(this).toggle.apply(unsafeUnwrap(this), arguments);
2332 invalidateClass(this.ownerElement_);
2333 return rv;
2334 },
2335 toString: function() {
2336 return unsafeUnwrap(this).toString();
2337 }
2338 }; 2333 };
2339 scope.wrappers.DOMTokenList = DOMTokenList; 2334 var oldRemove = DOMTokenList.prototype.remove;
2335 DOMTokenList.prototype.remove = function() {
2336 changeClass(this, oldRemove, arguments);
2337 };
2338 var oldToggle = DOMTokenList.prototype.toggle;
2339 DOMTokenList.prototype.toggle = function() {
2340 return changeClass(this, oldToggle, arguments);
2341 };
2340 })(window.ShadowDOMPolyfill); 2342 })(window.ShadowDOMPolyfill);
2341 2343
2342 (function(scope) { 2344 (function(scope) {
2343 "use strict"; 2345 "use strict";
2344 var ChildNodeInterface = scope.ChildNodeInterface; 2346 var ChildNodeInterface = scope.ChildNodeInterface;
2345 var GetElementsByInterface = scope.GetElementsByInterface; 2347 var GetElementsByInterface = scope.GetElementsByInterface;
2346 var Node = scope.wrappers.Node; 2348 var Node = scope.wrappers.Node;
2347 var DOMTokenList = scope.wrappers.DOMTokenList;
2348 var ParentNodeInterface = scope.ParentNodeInterface; 2349 var ParentNodeInterface = scope.ParentNodeInterface;
2349 var SelectorsInterface = scope.SelectorsInterface; 2350 var SelectorsInterface = scope.SelectorsInterface;
2350 var addWrapNodeListMethod = scope.addWrapNodeListMethod; 2351 var addWrapNodeListMethod = scope.addWrapNodeListMethod;
2351 var enqueueMutation = scope.enqueueMutation; 2352 var enqueueMutation = scope.enqueueMutation;
2352 var mixin = scope.mixin; 2353 var mixin = scope.mixin;
2353 var oneOf = scope.oneOf; 2354 var oneOf = scope.oneOf;
2354 var registerWrapper = scope.registerWrapper; 2355 var registerWrapper = scope.registerWrapper;
2355 var unsafeUnwrap = scope.unsafeUnwrap; 2356 var unsafeUnwrap = scope.unsafeUnwrap;
2356 var wrappers = scope.wrappers; 2357 var wrappers = scope.wrappers;
2357 var OriginalElement = window.Element; 2358 var OriginalElement = window.Element;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2400 unsafeUnwrap(this).removeAttribute(name); 2401 unsafeUnwrap(this).removeAttribute(name);
2401 enqueAttributeChange(this, name, oldValue); 2402 enqueAttributeChange(this, name, oldValue);
2402 invalidateRendererBasedOnAttribute(this, name); 2403 invalidateRendererBasedOnAttribute(this, name);
2403 }, 2404 },
2404 matches: function(selector) { 2405 matches: function(selector) {
2405 return originalMatches.call(unsafeUnwrap(this), selector); 2406 return originalMatches.call(unsafeUnwrap(this), selector);
2406 }, 2407 },
2407 get classList() { 2408 get classList() {
2408 var list = classListTable.get(this); 2409 var list = classListTable.get(this);
2409 if (!list) { 2410 if (!list) {
2410 classListTable.set(this, list = new DOMTokenList(unsafeUnwrap(this).clas sList, this)); 2411 list = unsafeUnwrap(this).classList;
2412 list.ownerElement_ = this;
2413 classListTable.set(this, list);
2411 } 2414 }
2412 return list; 2415 return list;
2413 }, 2416 },
2414 get className() { 2417 get className() {
2415 return unsafeUnwrap(this).className; 2418 return unsafeUnwrap(this).className;
2416 }, 2419 },
2417 set className(v) { 2420 set className(v) {
2418 this.setAttribute("class", v); 2421 this.setAttribute("class", v);
2419 }, 2422 },
2420 get id() { 2423 get id() {
(...skipping 1583 matching lines...) Expand 10 before | Expand all | Expand 10 after
4004 } 4007 }
4005 CustomElementConstructor.prototype = prototype; 4008 CustomElementConstructor.prototype = prototype;
4006 CustomElementConstructor.prototype.constructor = CustomElementConstructor; 4009 CustomElementConstructor.prototype.constructor = CustomElementConstructor;
4007 scope.constructorTable.set(newPrototype, CustomElementConstructor); 4010 scope.constructorTable.set(newPrototype, CustomElementConstructor);
4008 scope.nativePrototypeTable.set(prototype, newPrototype); 4011 scope.nativePrototypeTable.set(prototype, newPrototype);
4009 var nativeConstructor = originalRegisterElement.call(unwrap(this), tagName , p); 4012 var nativeConstructor = originalRegisterElement.call(unwrap(this), tagName , p);
4010 return CustomElementConstructor; 4013 return CustomElementConstructor;
4011 }; 4014 };
4012 forwardMethodsToWrapper([ window.HTMLDocument || window.Document ], [ "regis terElement" ]); 4015 forwardMethodsToWrapper([ window.HTMLDocument || window.Document ], [ "regis terElement" ]);
4013 } 4016 }
4014 forwardMethodsToWrapper([ window.HTMLBodyElement, window.HTMLDocument || windo w.Document, window.HTMLHeadElement, window.HTMLHtmlElement ], [ "appendChild", " compareDocumentPosition", "contains", "getElementsByClassName", "getElementsByTa gName", "getElementsByTagNameNS", "insertBefore", "querySelector", "querySelecto rAll", "removeChild", "replaceChild" ].concat(matchesNames)); 4017 forwardMethodsToWrapper([ window.HTMLBodyElement, window.HTMLDocument || windo w.Document, window.HTMLHeadElement, window.HTMLHtmlElement ], [ "appendChild", " compareDocumentPosition", "contains", "getElementsByClassName", "getElementsByTa gName", "getElementsByTagNameNS", "insertBefore", "querySelector", "querySelecto rAll", "removeChild", "replaceChild" ]);
4018 forwardMethodsToWrapper([ window.HTMLBodyElement, window.HTMLHeadElement, wind ow.HTMLHtmlElement ], matchesNames);
4015 forwardMethodsToWrapper([ window.HTMLDocument || window.Document ], [ "adoptNo de", "importNode", "contains", "createComment", "createDocumentFragment", "creat eElement", "createElementNS", "createEvent", "createEventNS", "createRange", "cr eateTextNode", "elementFromPoint", "getElementById", "getElementsByName", "getSe lection" ]); 4019 forwardMethodsToWrapper([ window.HTMLDocument || window.Document ], [ "adoptNo de", "importNode", "contains", "createComment", "createDocumentFragment", "creat eElement", "createElementNS", "createEvent", "createEventNS", "createRange", "cr eateTextNode", "elementFromPoint", "getElementById", "getElementsByName", "getSe lection" ]);
4016 mixin(Document.prototype, GetElementsByInterface); 4020 mixin(Document.prototype, GetElementsByInterface);
4017 mixin(Document.prototype, ParentNodeInterface); 4021 mixin(Document.prototype, ParentNodeInterface);
4018 mixin(Document.prototype, SelectorsInterface); 4022 mixin(Document.prototype, SelectorsInterface);
4019 mixin(Document.prototype, { 4023 mixin(Document.prototype, {
4020 get implementation() { 4024 get implementation() {
4021 var implementation = implementationTable.get(this); 4025 var implementation = implementationTable.get(this);
4022 if (implementation) return implementation; 4026 if (implementation) return implementation;
4023 implementation = new DOMImplementation(unwrap(this).implementation); 4027 implementation = new DOMImplementation(unwrap(this).implementation);
4024 implementationTable.set(this, implementation); 4028 implementationTable.set(this, implementation);
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
4239 if (!nativeConstructor) return; 4243 if (!nativeConstructor) return;
4240 var element = document.createElement(tagName); 4244 var element = document.createElement(tagName);
4241 var wrapperConstructor = element.constructor; 4245 var wrapperConstructor = element.constructor;
4242 window[nativeConstructorName] = wrapperConstructor; 4246 window[nativeConstructorName] = wrapperConstructor;
4243 } 4247 }
4244 Object.keys(elements).forEach(overrideConstructor); 4248 Object.keys(elements).forEach(overrideConstructor);
4245 Object.getOwnPropertyNames(scope.wrappers).forEach(function(name) { 4249 Object.getOwnPropertyNames(scope.wrappers).forEach(function(name) {
4246 window[name] = scope.wrappers[name]; 4250 window[name] = scope.wrappers[name];
4247 }); 4251 });
4248 })(window.ShadowDOMPolyfill); 4252 })(window.ShadowDOMPolyfill);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698