From 8a2aeb653b209304560324c1cc05e82e3e4c620e Mon Sep 17 00:00:00 2001 From: Anurag Pathak Date: Wed, 3 May 2017 19:48:33 +0530 Subject: [PATCH 01/31] Corrected minor Method comments --- lib/utils/async.html | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/utils/async.html b/lib/utils/async.html index 6bcfbd4b61..c7e1f6bfa8 100644 --- a/lib/utils/async.html +++ b/lib/utils/async.html @@ -104,7 +104,7 @@ /** * Enqueues a function called at `requestAnimationFrame` timing. * - * @memberof Polymer.Async.timeOut + * @memberof Polymer.Async.animationFrame * @param {Function} fn Callback to run * @return {*} Handle used for canceling task */ @@ -130,7 +130,7 @@ /** * Enqueues a function called at `requestIdleCallback` timing. * - * @memberof Polymer.Async.timeOut + * @memberof Polymer.Async.idlePeriod * @param {Function} fn Callback to run * @return {*} Handle used for canceling task */ @@ -142,7 +142,7 @@ /** * Cancels a previously enqueued `idlePeriod` callback. * - * @memberof Polymer.Async.timeOut + * @memberof Polymer.Async.idlePeriod * @param {*} handle Handle returned from `run` of callback to cancel */ cancel(timer) { @@ -171,7 +171,7 @@ /** * Enqueues a function called at microtask timing. * - * @memberof Polymer.Async.timeOut + * @memberof Polymer.Async.microTask * @param {Function} fn Callback to run */ run(callback) { @@ -183,6 +183,7 @@ /** * Cancels a previously enqueued `microTask` callback. * + * @memberof Polymer.Async.microTask * @param {*} handle Handle returned from `run` of callback to cancel */ cancel(handle) { From d72baf9da6779724dbfafdee6ae6aa1b8ed7d333 Mon Sep 17 00:00:00 2001 From: Kevin Schaaf Date: Thu, 4 May 2017 15:20:25 -0700 Subject: [PATCH 02/31] Ensure no warnings for dynamic fns. Fixes #4575 --- lib/mixins/property-effects.html | 5 +++-- test/unit/property-effects.html | 14 +++++++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/mixins/property-effects.html b/lib/mixins/property-effects.html index 2321826b7e..4d92e7703b 100644 --- a/lib/mixins/property-effects.html +++ b/lib/mixins/property-effects.html @@ -189,7 +189,7 @@ let changedProp = info.property; if (fn) { fn.call(inst, inst.__data[changedProp], oldProps[changedProp]); - } else { + } else if (!info.dynamicFn) { console.warn('observer method `' + info.methodName + '` not defined'); } } @@ -1905,7 +1905,7 @@ * @protected */ _createPropertyObserver(property, methodName, dynamicFn) { - let info = { property, methodName }; + let info = { property, methodName, dynamicFn }; this._addPropertyEffect(property, TYPES.OBSERVE, { fn: runObserverEffect, info, trigger: {name: property} }); @@ -2317,6 +2317,7 @@ let dynamicFns = templateInfo.dynamicFns; if (dynamicFns && dynamicFns[methodName] || signature.static) { dependencies.push(methodName); + signature.dynamicFn = true; } } else { // Property or path diff --git a/test/unit/property-effects.html b/test/unit/property-effects.html index 1310ef0365..01761095e4 100644 --- a/test/unit/property-effects.html +++ b/test/unit/property-effects.html @@ -392,8 +392,13 @@ var el; + setup(function() { + sinon.spy(console, 'warn'); + }); + teardown(function() { document.body.removeChild(el); + console.warn.restore(); }); test('annotated computation with dynamic function', function() { @@ -407,6 +412,7 @@ }; assert.equal(el.$.check.textContent, 'changed: Hello World.'); + assert.equal(console.warn.callCount, 0); }); test('annotated computation / late resolved dynamic function', function() { @@ -420,6 +426,7 @@ }; assert.equal(el.$.check.textContent, 'translated: Hello'); + assert.equal(console.warn.callCount, 0); }); test('method observer with dynamic function', function() { @@ -444,7 +451,7 @@ el.translateMessage = sinon.spy(); assert.equal(el.translateMessage.callCount, 1); - + assert.equal(console.warn.callCount, 0); }); test('observer with dynamic function', function() { @@ -468,7 +475,7 @@ el.messageChanged = sinon.spy(); assert.equal(el.messageChanged.callCount, 1); - + assert.equal(console.warn.callCount, 0); }); test('computed property with dynamic function', function() { @@ -497,7 +504,7 @@ assert.equal(called, 1); assert.equal(el.computedValue, 'translated: Hello'); - + assert.equal(console.warn.callCount, 0); }); test('ensure annotator can pass dynamic fn to parent props', function(done) { @@ -507,6 +514,7 @@ setTimeout(function() { var check = el.root.querySelector('p'); assert.equal(check.textContent, 'text'); + assert.equal(console.warn.callCount, 0); done(); }); From 3b6981d46f0064d489bbed8e427c92536cb1b588 Mon Sep 17 00:00:00 2001 From: Steven Orvell Date: Fri, 5 May 2017 14:48:38 -0700 Subject: [PATCH 03/31] =?UTF-8?q?Fixes=20#4585.=20Data=20notifications=20d?= =?UTF-8?q?o=20not=20flush=20host=20if=20host=20has=20not=20initialized=20?= =?UTF-8?q?clients.=20This=20preserves=20the=20Polymer=201.x=20guarantee?= =?UTF-8?q?=20that=20client=20dom=20is=20fully=20=E2=80=9Creadied=E2=80=9D?= =?UTF-8?q?=20when=20data=20observers=20run.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/mixins/element-mixin.html | 6 +++++- lib/mixins/property-effects.html | 10 +++++++++- test/unit/property-effects-elements.html | 25 ++++++++++++++++++++++-- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/lib/mixins/element-mixin.html b/lib/mixins/element-mixin.html index a3bb9c9eec..aae9c992e9 100644 --- a/lib/mixins/element-mixin.html +++ b/lib/mixins/element-mixin.html @@ -656,6 +656,10 @@ hostStack.endHosting(this); this.$ = this.root.$; } + // The super.ready here makes this element able to observe data changes. + // We must wait to do this until after client dom is created/attached + // so that any notifications fired during this process are not handled + // before all clients are ready. super.ready(); } @@ -669,10 +673,10 @@ * @override */ _readyClients() { - super._readyClients(); if (this._template) { this.root = this._attachDom(this.root); } + super._readyClients(); } diff --git a/lib/mixins/property-effects.html b/lib/mixins/property-effects.html index 2321826b7e..9cc1d0adcc 100644 --- a/lib/mixins/property-effects.html +++ b/lib/mixins/property-effects.html @@ -227,8 +227,11 @@ } } // Flush host if we actually notified and host was batching + // And the host has already initialized clients; this prevents + // an issue with a host observing data changes before clients are ready. let host; - if (notified && (host = inst.__dataHost) && host._flushProperties) { + if (notified && (host = inst.__dataHost) && host._flushProperties + && host.__dataClientsInitialized) { host._flushProperties(); } } @@ -1509,6 +1512,11 @@ if (!this.__dataClientsInitialized) { this._readyClients(); } + // Before ready, client notifications do not trigger _flushProperties. + // Therefore a flush is necessary here if data has been set. + if (this.__dataPending) { + this._flushProperties(); + } } /** diff --git a/test/unit/property-effects-elements.html b/test/unit/property-effects-elements.html index 7005ec55b3..aeb74816c1 100644 --- a/test/unit/property-effects-elements.html +++ b/test/unit/property-effects-elements.html @@ -184,6 +184,9 @@ }; this.titleChanged = sinon.spy(); }, + ready: function() { + this.isReady = true; + }, clearObserverCounts: function() { for (var i in this.observerCounts) { this.observerCounts[i] = 0; @@ -344,7 +347,8 @@ 'boundcomputedvalueChanged(boundcomputedvalue)', 'boundcomputednotifyingvalueChanged(boundcomputednotifyingvalue)', 'boundreadonlyvalueChanged(boundreadonlyvalue)', - 'boundCustomNotifyingValueChanged(boundCustomNotifyingValue)' + 'boundCustomNotifyingValueChanged(boundCustomNotifyingValue)', + 'boundnotifyingvalueWithDefaultChanged(boundnotifyingvalueWithDefault)' ], properties: { a: { @@ -367,7 +371,8 @@ boundcomputedvalueChanged: 0, boundcomputednotifyingvalueChanged: 0, boundreadonlyvalueChanged: 0, - boundCustomNotifyingValueChanged: 0 + boundCustomNotifyingValueChanged: 0, + boundnotifyingvalueWithDefault: 0 }; }, computeComputedValue: function(a, b) { @@ -378,23 +383,39 @@ this.observerCounts[i] = 0; } }, + assertClientsReady: function() { + assert.isTrue(this.$.basic1.isReady, 'basic1 not `ready` by observer time'); + assert.isTrue(this.$.basic2.isReady, 'basic2 element not `ready` by observer time'); + assert.isTrue(this.$.basic3.isReady, 'basic3 element not `ready` by observer time'); + assert.isTrue(this.$.basic4.isReady, 'basic4 element not `ready` by observer time'); + }, boundvalueChanged: function() { + this.assertClientsReady(); this.observerCounts.boundvalueChanged++; }, boundnotifyingvalueChanged: function() { + this.assertClientsReady(); this.observerCounts.boundnotifyingvalueChanged++; }, boundcomputedvalueChanged: function() { + this.assertClientsReady(); this.observerCounts.boundcomputedvalueChanged++; }, boundcomputednotifyingvalueChanged: function() { + this.assertClientsReady(); this.observerCounts.boundcomputednotifyingvalueChanged++; }, boundreadonlyvalueChanged: function() { + this.assertClientsReady(); this.observerCounts.boundreadonlyvalueChanged++; }, boundCustomNotifyingValueChanged: function() { + this.assertClientsReady(); this.observerCounts.boundCustomNotifyingValueChanged++; + }, + boundnotifyingvalueWithDefaultChanged: function() { + this.assertClientsReady(); + this.observerCounts.boundnotifyingvalueWithDefault++; } }); From 6f1dde76697dae2c1f64bdbf304500e463d9de26 Mon Sep 17 00:00:00 2001 From: Steven Orvell Date: Fri, 5 May 2017 14:53:17 -0700 Subject: [PATCH 04/31] Fix comment. --- lib/mixins/element-mixin.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/mixins/element-mixin.html b/lib/mixins/element-mixin.html index aae9c992e9..9465d1d034 100644 --- a/lib/mixins/element-mixin.html +++ b/lib/mixins/element-mixin.html @@ -656,10 +656,6 @@ hostStack.endHosting(this); this.$ = this.root.$; } - // The super.ready here makes this element able to observe data changes. - // We must wait to do this until after client dom is created/attached - // so that any notifications fired during this process are not handled - // before all clients are ready. super.ready(); } @@ -676,6 +672,10 @@ if (this._template) { this.root = this._attachDom(this.root); } + // The super._readyClients here sets the clients initialized flag. + // We must wait to do this until after client dom is created/attached + // so that this flag can be checked to prevent notifications fired + // during this process from being handled before clients are ready. super._readyClients(); } From 6b6092e0aee8158e08648e71a39f05775940cd3b Mon Sep 17 00:00:00 2001 From: Daniel Freedman Date: Thu, 11 May 2017 14:02:57 -0700 Subject: [PATCH 05/31] [ci skip] remove bower.json version, add npm devDependencies & np publish config --- bower.json | 1 - package.json | 5 ++++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/bower.json b/bower.json index 8a1120d472..9baa9c0ffd 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,5 @@ { "name": "polymer", - "version": "2.0.0-rc.7", "main": [ "polymer.html" ], diff --git a/package.json b/package.json index d9e3423390..1fad2a2ce0 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,8 @@ "test": "test" }, "devDependencies": { + "@webcomponents/shadycss": "^1.0.0-rc.6", + "@webcomponents/webcomponentsjs": "^1.0.0-rc.12", "babel-preset-babili": "0.0.12", "del": "^2.2.1", "dom5": "^1.3.1", @@ -40,5 +42,6 @@ "bugs": { "url": "https://github.com/Polymer/polymer/issues" }, - "homepage": "https://github.com/Polymer/polymer" + "homepage": "https://github.com/Polymer/polymer", + "publishConfig": {"access": "public"} } From 7497065a08c3a11de9fd25e6c7adab5b5aa5d8b1 Mon Sep 17 00:00:00 2001 From: Kevin Schaaf Date: Thu, 11 May 2017 14:08:36 -0700 Subject: [PATCH 06/31] Add static API for creating property fx and minor code refactoring. --- lib/mixins/property-effects.html | 179 ++++++++++++++++++++++++++++--- lib/mixins/template-stamp.html | 5 +- 2 files changed, 169 insertions(+), 15 deletions(-) diff --git a/lib/mixins/property-effects.html b/lib/mixins/property-effects.html index 129cd73eb8..48a0084f0f 100644 --- a/lib/mixins/property-effects.html +++ b/lib/mixins/property-effects.html @@ -1026,21 +1026,23 @@ * Element class mixin that provides meta-programming for Polymer's template * binding and data observation (collectively, "property effects") system. * - * This mixin uses provides the following key methods for adding property effects - * to this element: - * - `_createPropertyObserver` - * - `_createMethodObserver` - * - `_createNotifyingProperty` - * - `_createReadOnlyProperty` - * - `_createReflectedProperty` - * - `_createComputedProperty` - * - `_bindTemplate` + * This mixin uses provides the following key static methods for adding + * property effects to an element class: + * - `createPropertyEffect` + * - `createPropertyObserver` + * - `createMethodObserver` + * - `createNotifyingProperty` + * - `createReadOnlyProperty` + * - `createReflectedProperty` + * - `createComputedProperty` + * - `bindTemplate` * * Each method creates one or more property accessors, along with metadata * used by this mixin's implementation of `_propertiesChanged` to perform - * the property effects. These methods may be called on element instances, - * but are designed to be called on element prototypes such that the work to - * set up accessors and effect metadata are done once per element class. + * the property effects. + * + * Underscored versions of the above methods also exist on the element + * prototype for adding property effects on instances at runtime. * * Note that this mixin overrides several `PropertyAccessors` methods, in * many cases to maintain guarantees provided by the Polymer 1.x features; @@ -2004,6 +2006,150 @@ createMethodEffect(this, sig, TYPES.COMPUTE, runComputedEffect, property, dynamicFns); } + // -- static class methods ------------ + + /** + * Ensures an accessor exists for the specified property, and adds + * to a list of "property effects" that will run when the accessor for + * the specified property is set. Effects are grouped by "type", which + * roughly corresponds to a phase in effect processing. The effect + * metadata should be in the following form: + * + * { + * fn: effectFunction, // Reference to function to call to perform effect + * info: { ... } // Effect metadata passed to function + * trigger: { // Optional triggering metadata; if not provided + * name: string // the property is treated as a wildcard + * structured: boolean + * wildcard: boolean + * } + * } + * + * Effects are called from `_propertiesChanged` in the following order by + * type: + * + * 1. COMPUTE + * 2. PROPAGATE + * 3. REFLECT + * 4. OBSERVE + * 5. NOTIFY + * + * Effect functions are called with the following signature: + * + * effectFunction(inst, path, props, oldProps, info, hasPaths) + * + * @param {string} property Property that should trigger the effect + * @param {string} type Effect type, from this.PROPERTY_EFFECT_TYPES + * @param {Object=} effect Effect metadata object + * @protected + */ + static addPropertyEffect(property, type, effect) { + this.prototype._addPropertyEffect(property, type, effect); + } + + /** + * Creates a single-property observer for the given property. + * + * @param {string} property Property name + * @param {string} methodName Name of observer method to call + * @param {boolean=} dynamicFn Whether the method name should be included as + * a dependency to the effect. + * @protected + */ + static createPropertyObserver(property, methodName, dynamicFn) { + this.prototype._createPropertyObserver(property, methodName, dynamicFn); + } + + /** + * Creates a multi-property "method observer" based on the provided + * expression, which should be a string in the form of a normal Javascript + * function signature: `'methodName(arg1, [..., argn])'`. Each argument + * should correspond to a property or path in the context of this + * prototype (or instance), or may be a literal string or number. + * + * @param {string} expression Method expression + * @param {Object=} dynamicFns Map indicating whether method names should + * be included as a dependency to the effect. + * @protected + */ + static createMethodObserver(expression, dynamicFns) { + this.prototype._createMethodObserver(expression, dynamicFns); + } + + /** + * Causes the setter for the given property to dispatch `-changed` + * events to notify of changes to the property. + * + * @param {string} property Property name + * @protected + */ + static createNotifyingProperty(property) { + this.prototype._createNotifyingProperty(property); + } + + /** + * Creates a read-only accessor for the given property. + * + * To set the property, use the protected `_setProperty` API. + * To create a custom protected setter (e.g. `_setMyProp()` for + * property `myProp`), pass `true` for `protectedSetter`. + * + * Note, if the property will have other property effects, this method + * should be called first, before adding other effects. + * + * @param {string} property Property name + * @param {boolean=} protectedSetter Creates a custom protected setter + * when `true`. + * @protected + */ + static createReadOnlyProperty(property, protectedSetter) { + this.prototype._createReadOnlyProperty(property, protectedSetter); + } + + /** + * Causes the setter for the given property to reflect the property value + * to a (dash-cased) attribute of the same name. + * + * @param {string} property Property name + * @protected + */ + static createReflectedProperty(property) { + this.prototype._createReflectedProperty(property); + } + + /** + * Creates a computed property whose value is set to the result of the + * method described by the given `expression` each time one or more + * arguments to the method changes. The expression should be a string + * in the form of a normal Javascript function signature: + * `'methodName(arg1, [..., argn])'` + * + * @param {string} property Name of computed property to set + * @param {string} expression Method expression + * @param {Object=} dynamicFns Map indicating whether method names should + * be included as a dependency to the effect. + * @protected + */ + static createComputedProperty(property, expression, dynamicFns) { + this.prototype._createComputedProperty(property, expression, dynamicFns); + } + + /** + * Parses the provided template to ensure binding effects are created + * for them, and then ensures property accessors are created for any + * dependent properties in the template. Binding effects for bound + * templates are stored in a linked list on the instance so that + * templates can be efficiently stamped and unstamped. + * + * @param {HTMLTemplateElement} template Template containing binding + * bindings + * @return {Object} Template metadata object + * @protected + */ + static bindTemplate(template) { + return this.prototype._bindTemplate(template); + } + // -- binding ---------------------------------------------- /** @@ -2046,8 +2192,10 @@ templateInfo = Object.create(templateInfo); templateInfo.wasPreBound = wasPreBound; if (!wasPreBound && this.__templateInfo) { - templateInfo.nextTemplateInfo = this.__templateInfo; - this.__templateInfo.previousTemplateInfo = templateInfo; + let last = this.__templateInfoLast || this.__templateInfo; + this.__templateInfoLast = last.nextTemplateInfo = templateInfo; + templateInfo.previousTemplateInfo = last; + return templateInfo; } } return this.__templateInfo = templateInfo; @@ -2134,6 +2282,9 @@ templateInfo.nextTemplateInfo.previousTemplateInfo = templateInfo.previousTemplateInfo; } + if (this.__templateInfoLast == templateInfo) { + this.__templateInfoLast = templateInfo.previousTemplateInfo; + } // Remove stamped nodes let nodes = templateInfo.childNodes; for (let i=0; i Date: Thu, 11 May 2017 14:48:22 -0700 Subject: [PATCH 07/31] [ci skip] port gen-changelog from 1.x --- util/gen-changelog.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/util/gen-changelog.sh b/util/gen-changelog.sh index 84018969be..10d762ad14 100755 --- a/util/gen-changelog.sh +++ b/util/gen-changelog.sh @@ -6,9 +6,6 @@ end="$2" enddate=`git log -1 ${end} --pretty="%ai" | cut -d ' ' -f 1` -startrev="`git show ${start}:build.log | awk '/polymer: / {print $2}'`" -endrev="`git show ${end}:build.log | awk '/polymer: / {print $2}'`" - old="" if [ -e CHANGELOG.md ]; then old="`sed -e '1,2d' CHANGELOG.md`" @@ -18,7 +15,7 @@ cat > CHANGELOG.md < Date: Thu, 11 May 2017 16:02:00 -0700 Subject: [PATCH 08/31] Add tests --- test/unit/property-effects.html | 216 +++++++++++++++++++++++++++++++- 1 file changed, 215 insertions(+), 1 deletion(-) diff --git a/test/unit/property-effects.html b/test/unit/property-effects.html index 01761095e4..f6958a660a 100644 --- a/test/unit/property-effects.html +++ b/test/unit/property-effects.html @@ -23,7 +23,7 @@ From 55b2d16088c3624f1ef189802952fff7be0abd85 Mon Sep 17 00:00:00 2001 From: Kevin Schaaf Date: Thu, 11 May 2017 16:05:08 -0700 Subject: [PATCH 09/31] Uncomment previous tests --- test/unit/property-effects.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/unit/property-effects.html b/test/unit/property-effects.html index f6958a660a..0481f2411b 100644 --- a/test/unit/property-effects.html +++ b/test/unit/property-effects.html @@ -23,7 +23,7 @@ From 1f83fd7ce0229225e647bc843da2b0399caed36a Mon Sep 17 00:00:00 2001 From: Steven Orvell Date: Fri, 12 May 2017 15:12:52 -0700 Subject: [PATCH 22/31] Add tests. --- test/unit/property-effects-elements.html | 33 ++++++++++++++++++++++++ test/unit/property-effects.html | 31 ++++++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/test/unit/property-effects-elements.html b/test/unit/property-effects-elements.html index aeb74816c1..0d9853cde0 100644 --- a/test/unit/property-effects-elements.html +++ b/test/unit/property-effects-elements.html @@ -421,6 +421,39 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/smoke/alacarte-property-effects-ordering.html b/test/smoke/alacarte-property-effects-ordering.html new file mode 100644 index 0000000000..d88f9f90cb --- /dev/null +++ b/test/smoke/alacarte-property-effects-ordering.html @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/smoke/alacarte-property-effects.html b/test/smoke/alacarte-property-effects.html new file mode 100644 index 0000000000..8e697f4b7a --- /dev/null +++ b/test/smoke/alacarte-property-effects.html @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/smoke/alacarte-template-stamp.html b/test/smoke/alacarte-template-stamp.html new file mode 100644 index 0000000000..c8c22cbf13 --- /dev/null +++ b/test/smoke/alacarte-template-stamp.html @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 99abf955021d44d6ab5beab44b5b26a180986e23 Mon Sep 17 00:00:00 2001 From: Kevin Schaaf Date: Fri, 12 May 2017 20:36:45 -0700 Subject: [PATCH 26/31] v2.0.0-rc.9 --- lib/utils/boot.html | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/utils/boot.html b/lib/utils/boot.html index aefae138fe..d88e31591d 100644 --- a/lib/utils/boot.html +++ b/lib/utils/boot.html @@ -44,7 +44,7 @@ window.Polymer._polymerFn = function(info) { // eslint-disable-line no-unused-vars throw new Error('Load polymer.html to use the Polymer() function.'); } - window.Polymer.version = '2.0-preview'; + window.Polymer.version = '2.0.0-rc.9'; /* eslint-disable no-unused-vars */ /* diff --git a/package.json b/package.json index d016053556..f414efc317 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@polymer/polymer", - "version": "2.0.0-rc.8", + "version": "2.0.0-rc.9", "description": "The Polymer library makes it easy to create your own web components. Give your element some markup and properties, and then use it on a site. Polymer provides features like dynamic templates and data binding to reduce the amount of boilerplate you need to write", "main": "polymer.html", "directories": { From 21ee3b4da1904a5a7ce116fd8794a41ed09b5d90 Mon Sep 17 00:00:00 2001 From: Daniel Freedman Date: Fri, 12 May 2017 21:19:10 -0700 Subject: [PATCH 27/31] [ci skip] Update Changelog --- CHANGELOG.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6808cf0c2c..8fa385bddf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ # Change Log +## [v2.0.0-rc.9](https://github.com/Polymer/polymer/tree/v2.0.0-rc.9) (2017-05-12) +- [ci skip] Add alacarte usage smoke tests. ([commit](https://github.com/Polymer/polymer/commit/e54bc5f8)) + +- [skip ci] doc fixes ([commit](https://github.com/Polymer/polymer/commit/b943aa0d)) + +- Docs and slight renaming. ([commit](https://github.com/Polymer/polymer/commit/4eb252fe)) + +- Add tests. ([commit](https://github.com/Polymer/polymer/commit/1f83fd7c)) + +- Move hostStack to property-effects and make readyClients explicit ([commit](https://github.com/Polymer/polymer/commit/c7a81ea8)) + +- Turn on accessors (via __dataInitialized) only after clients have completely flushed. ([commit](https://github.com/Polymer/polymer/commit/2f1e964c)) + +- Adds `_enableProperties` as a new entry point that must be called to turn on properties. Prevents a bug where `_readyClients` can be called twice. ([commit](https://github.com/Polymer/polymer/commit/c6f9b315)) + +- [ci skip] Fix doc createPropertyEffect -> addPropertyEffect ([commit](https://github.com/Polymer/polymer/commit/90e8cd95)) + +- [ci skip] Update Changelog ([commit](https://github.com/Polymer/polymer/commit/448149d2)) + ## [v2.0.0-rc.8](https://github.com/Polymer/polymer/tree/v2.0.0-rc.8) (2017-05-11) - Add test for boolean dynamicFn ([commit](https://github.com/Polymer/polymer/commit/03d21ce8)) From 712230fc8d6f32b05b2e00d0973216916b262d05 Mon Sep 17 00:00:00 2001 From: Daniel Freedman Date: Mon, 15 May 2017 11:24:54 -0700 Subject: [PATCH 28/31] [ci skip] bump version to 2.0.0 --- lib/utils/boot.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/utils/boot.html b/lib/utils/boot.html index d88e31591d..0a15f5ed1d 100644 --- a/lib/utils/boot.html +++ b/lib/utils/boot.html @@ -44,7 +44,7 @@ window.Polymer._polymerFn = function(info) { // eslint-disable-line no-unused-vars throw new Error('Load polymer.html to use the Polymer() function.'); } - window.Polymer.version = '2.0.0-rc.9'; + window.Polymer.version = '2.0.0'; /* eslint-disable no-unused-vars */ /* From 49537f25423c0c7f84a2a4b21ddc22f3660782a8 Mon Sep 17 00:00:00 2001 From: Daniel Freedman Date: Mon, 15 May 2017 11:25:09 -0700 Subject: [PATCH 29/31] 2.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f414efc317..ce1986400e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@polymer/polymer", - "version": "2.0.0-rc.9", + "version": "2.0.0", "description": "The Polymer library makes it easy to create your own web components. Give your element some markup and properties, and then use it on a site. Polymer provides features like dynamic templates and data binding to reduce the amount of boilerplate you need to write", "main": "polymer.html", "directories": { From c4e516f6ac1ee6018bb2a91b89b3f0241696ae03 Mon Sep 17 00:00:00 2001 From: Daniel Freedman Date: Mon, 15 May 2017 11:26:07 -0700 Subject: [PATCH 30/31] [ci skip] Update Changelog --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fa385bddf..58ed01bda8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Change Log +## [v2.0.0](https://github.com/Polymer/polymer/tree/v2.0.0) (2017-05-15) +- [ci skip] bump version to 2.0.0 ([commit](https://github.com/Polymer/polymer/commit/712230fc)) + +- [ci skip] Update Changelog ([commit](https://github.com/Polymer/polymer/commit/21ee3b4d)) + ## [v2.0.0-rc.9](https://github.com/Polymer/polymer/tree/v2.0.0-rc.9) (2017-05-12) - [ci skip] Add alacarte usage smoke tests. ([commit](https://github.com/Polymer/polymer/commit/e54bc5f8)) From 6bd8dcfac2b7748165f5a43e5d155dd9a177ddf2 Mon Sep 17 00:00:00 2001 From: salvador-barboza Date: Sat, 20 May 2017 13:41:43 -0500 Subject: [PATCH 31/31] Fix typo in runBindingEffect documentation --- lib/mixins/property-effects.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mixins/property-effects.html b/lib/mixins/property-effects.html index 59ef27e49e..04160d56ee 100644 --- a/lib/mixins/property-effects.html +++ b/lib/mixins/property-effects.html @@ -508,7 +508,7 @@ * Implements the "binding" (property/path binding) effect. * * Note that binding syntax is overridable via `_parseBindings` and - * `_evaluateBindings`. This method will call `_evaluateBinding` for any + * `_evaluateBinding`. This method will call `_evaluateBinding` for any * non-literal parts returned from `_parseBindings`. However, * there is no support for _path_ bindings via custom binding parts, * as this is specific to Polymer's path binding syntax.