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');
+ });
+
});