diff --git a/src/lib/base.html b/src/lib/base.html index b2feaf5797..a1690205d7 100644 --- a/src/lib/base.html +++ b/src/lib/base.html @@ -7,7 +7,13 @@ Code distributed by Google as part of the polymer project is also subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt --> + diff --git a/src/lib/settings.html b/src/lib/settings.html index 7e4c4288f7..dc25d13ae7 100644 --- a/src/lib/settings.html +++ b/src/lib/settings.html @@ -18,38 +18,33 @@ // like: Polymer = {dom: 'shady'} // via Polymer object - var user = window.Polymer || {}; + var settings = window.Polymer || {}; // via url var parts = location.search.slice(1).split('&'); for (var i=0, o; (i < parts.length) && (o=parts[i]); i++) { o = o.split('='); - o[0] && (user[o[0]] = o[1] || true); + o[0] && (settings[o[0]] = o[1] || true); } - var wantShadow = (user.dom === 'shadow'); - var hasShadow = Boolean(Element.prototype.createShadowRoot); - var nativeShadow = hasShadow && !window.ShadowDOMPolyfill; - var useShadow = wantShadow && hasShadow; + settings.wantShadow = (settings.dom === 'shadow'); + settings.hasShadow = Boolean(Element.prototype.createShadowRoot); + settings.nativeShadow = settings.hasShadow && !window.ShadowDOMPolyfill; + settings.useShadow = settings.wantShadow && settings.hasShadow; - var hasNativeImports = Boolean('import' in document.createElement('link')); - var useNativeImports = hasNativeImports; + settings.hasNativeImports = + Boolean('import' in document.createElement('link')); + settings.useNativeImports = settings.hasNativeImports; - var useNativeCustomElements = (!window.CustomElements || + settings.useNativeCustomElements = (!window.CustomElements || window.CustomElements.useNative); - var usePolyfillProto = !useNativeCustomElements && !Object.__proto__; - - return { - wantShadow: wantShadow, - hasShadow: hasShadow, - nativeShadow: nativeShadow, - useShadow: useShadow, - useNativeShadow: useShadow && nativeShadow, - useNativeImports: useNativeImports, - useNativeCustomElements: useNativeCustomElements, - usePolyfillProto: usePolyfillProto - }; + settings.useNativeShadow = settings.useShadow && settings.nativeShadow; + + settings.usePolyfillProto = !settings.useNativeCustomElements && + !Object.__proto__; + + return settings; })() }; diff --git a/test/unit/lazy-register.html b/test/unit/lazy-register.html index bae08acb11..0d07bc8a3a 100644 --- a/test/unit/lazy-register.html +++ b/test/unit/lazy-register.html @@ -27,7 +27,7 @@ window.XEager = Polymer({ is: 'x-eager', - forceRegister: true, + eagerRegister: true, registered: sinon.spy() }); @@ -65,7 +65,7 @@ HTMLImports.whenReady(function() { Polymer({ is: 'x-eager-style', - forceRegister: true + eagerRegister: true }); }); @@ -81,7 +81,7 @@ assert.isTrue(XLazy.prototype.registered.called, 'registered not called after instance created'); }); - test('registered called at registration time if `forceRegister` is true', function() { + test('registered called at registration time if `eagerRegister` is true', function() { assert.isTrue(XEager.prototype.registered.called, 'registered not called before instance created'); document.createElement('x-eager'); assert.isTrue(XLazy.prototype.registered.calledOnce, 'registered called more than once'); @@ -93,12 +93,27 @@ assert.ok(document.querySelector('style[scope=x-lazy-style]'), 'style shimmed at first instance'); }); - test('styles shimmed at registration when `forceRegister` is true', function() { + test('styles shimmed at registration when `eagerRegister` is true', function() { assert.ok(document.querySelector('style[scope=x-eager-style]'), 'style shimmed before registration complete'); document.createElement('x-eager-style'); assert.equal(document.querySelectorAll('style[scope=x-eager-style]').length, 1); }); + test('Polymer.Settings.eagerRegister', function() { + Polymer.Settings.eagerRegister = true; + var XTest1 = Polymer({ + is: 'x-test1', + registered: sinon.spy() + }); + assert.isTrue(XTest1.prototype.registered.called, 'registered not called when eagerRegister is set'); + Polymer.Settings.eagerRegister = false; + var XTest2 = Polymer({ + is: 'x-test2', + registered: sinon.spy() + }); + assert.isFalse(XTest2.prototype.registered.called, 'registered called when eagerRegister not set'); + }); + });