From de87c5850c6a371d8b5cf842f865171440d738e0 Mon Sep 17 00:00:00 2001 From: Daniel Freedman Date: Tue, 6 Jun 2017 11:35:38 -0700 Subject: [PATCH] Down to 30ish warnings, need PolymerPass v2 --- closure.log | 496 +------ externs/closure-types.js | 2022 ++++++++++++++++++++------ externs/polymer-externs.js | 82 +- gulpfile.js | 4 +- lib/elements/array-selector.html | 19 +- lib/elements/dom-bind.html | 10 +- lib/elements/dom-if.html | 2 + lib/elements/dom-repeat.html | 7 +- lib/legacy/class.html | 35 +- lib/legacy/legacy-element-mixin.html | 7 +- lib/legacy/polymer-fn.html | 7 +- lib/mixins/element-mixin.html | 27 +- lib/mixins/property-accessors.html | 6 +- lib/mixins/property-effects.html | 110 +- lib/utils/boot.html | 8 +- lib/utils/templatize.html | 21 +- package.json | 2 +- 17 files changed, 1824 insertions(+), 1041 deletions(-) diff --git a/closure.log b/closure.log index 54cf42428e..70795f8ab1 100644 --- a/closure.log +++ b/closure.log @@ -1,569 +1,141 @@ -gulp-google-closure-compiler: externs/closure-types.js:780: WARNING - property connectedCallback not defined on any supertype of Polymer_ElementMixin +gulp-google-closure-compiler: externs/closure-types.js:1053: WARNING - property connectedCallback not defined on any supertype of Polymer_ElementMixin Polymer_ElementMixin.prototype.connectedCallback = function(){}; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -externs/closure-types.js:784: WARNING - property disconnectedCallback not defined on any supertype of Polymer_ElementMixin +externs/closure-types.js:1057: WARNING - property disconnectedCallback not defined on any supertype of Polymer_ElementMixin Polymer_ElementMixin.prototype.disconnectedCallback = function(){}; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -externs/closure-types.js:1435: WARNING - property mutableData on interface Polymer_OptionalMutableData is not implemented by type OptionalMutableData +externs/closure-types.js:2036: WARNING - property mutableData on interface Polymer_OptionalMutableData is not implemented by type OptionalMutableData Polymer_OptionalMutableData.prototype.mutableData; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -externs/closure-types.js:1449: WARNING - property items on interface Polymer_ArraySelectorMixin is not implemented by type ArraySelectorMixin +externs/closure-types.js:2051: WARNING - property items on interface Polymer_ArraySelectorMixin is not implemented by type ArraySelectorMixin Polymer_ArraySelectorMixin.prototype.items; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -externs/closure-types.js:1452: WARNING - property multi on interface Polymer_ArraySelectorMixin is not implemented by type ArraySelectorMixin +externs/closure-types.js:2054: WARNING - property multi on interface Polymer_ArraySelectorMixin is not implemented by type ArraySelectorMixin Polymer_ArraySelectorMixin.prototype.multi; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -externs/closure-types.js:1455: WARNING - property selected on interface Polymer_ArraySelectorMixin is not implemented by type ArraySelectorMixin -Polymer_ArraySelectorMixin.prototype.selected; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -externs/closure-types.js:1458: WARNING - property selectedItem on interface Polymer_ArraySelectorMixin is not implemented by type ArraySelectorMixin -Polymer_ArraySelectorMixin.prototype.selectedItem; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -externs/closure-types.js:1461: WARNING - property toggle on interface Polymer_ArraySelectorMixin is not implemented by type ArraySelectorMixin +externs/closure-types.js:2063: WARNING - property toggle on interface Polymer_ArraySelectorMixin is not implemented by type ArraySelectorMixin Polymer_ArraySelectorMixin.prototype.toggle; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -polymer.html_script_10.js:195: WARNING - Property __notifyEffects never defined on inst of type Element - let fxs = inst.__notifyEffects; - ^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_10.js:227: WARNING - Missing return statement. Function expected to return boolean. - function notifyPath(inst, path, props) { - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_10.js:354: WARNING - Property __computeEffects never defined on inst of type Element - let computeEffects = inst.__computeEffects; - ^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_10.js:398: WARNING - Property __dataLinkedPaths never defined on inst of type Element - let links = inst.__dataLinkedPaths; - ^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_10.js:1097: WARNING - Property __readOnly never defined on this of type PropertyEffects - let readOnly = this.__readOnly; - ^^^^^^^^^^^^^^^ - -polymer.html_script_10.js:1257: WARNING - Invalid type for parameter 1 of function computeLinkedPaths. -Expected : Element|null -Found : PropertyEffects{__dataHasPaths:true} - - computeLinkedPaths(this, path, value); - ^^^^ - -polymer.html_script_10.js:1257: WARNING - Invalid type for parameter 2 of function computeLinkedPaths. -Expected : string -Found : Array|string -More details: -The found type is a union that includes an unexpected type: Array - computeLinkedPaths(this, path, value); - ^^^^ - -polymer.html_script_10.js:1534: WARNING - Invalid type for parameter 1 of function runComputedEffects. -Expected : Element|null -Found : PropertyEffects{__dataHasPaths:false} - - runComputedEffects(this, changedProps, oldProps, hasPaths); - ^^^^ - -polymer.html_script_10.js:1534: WARNING - Invalid type for parameter 2 of function runComputedEffects. -Expected : Object -Found : * - - runComputedEffects(this, changedProps, oldProps, hasPaths); - ^^^^^^^^^^^^ - -polymer.html_script_10.js:1534: WARNING - Invalid type for parameter 3 of function runComputedEffects. -Expected : Object -Found : * - - runComputedEffects(this, changedProps, oldProps, hasPaths); - ^^^^^^^^ - -polymer.html_script_10.js:1540: WARNING - Invalid type for parameter 1 of function this._propagatePropertyChanges. -Expected : Object|null -Found : * - - this._propagatePropertyChanges(changedProps, oldProps, hasPaths); - ^^^^^^^^^^^^ - -polymer.html_script_10.js:1540: WARNING - Invalid type for parameter 2 of function this._propagatePropertyChanges. -Expected : Object|null -Found : * - - this._propagatePropertyChanges(changedProps, oldProps, hasPaths); - ^^^^^^^^ - -polymer.html_script_10.js:1544: WARNING - Property __reflectEffects never defined on this of type PropertyEffects{__dataHasPaths:false, __dataToNotify:null} - runEffects(this, this.__reflectEffects, changedProps, oldProps, hasPaths); - ^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_10.js:1544: WARNING - Invalid type for parameter 3 of function runEffects. -Expected : Object|null -Found : * - - runEffects(this, this.__reflectEffects, changedProps, oldProps, hasPaths); - ^^^^^^^^^^^^ - -polymer.html_script_10.js:1544: WARNING - Invalid type for parameter 4 of function runEffects. -Expected : Object|null|undefined -Found : * - - runEffects(this, this.__reflectEffects, changedProps, oldProps, hasPaths); - ^^^^^^^^ - -polymer.html_script_10.js:1546: WARNING - Property __observeEffects never defined on this of type PropertyEffects{__dataHasPaths:false, __dataToNotify:null} - runEffects(this, this.__observeEffects, changedProps, oldProps, hasPaths); - ^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_10.js:1546: WARNING - Invalid type for parameter 3 of function runEffects. -Expected : Object|null -Found : * - - runEffects(this, this.__observeEffects, changedProps, oldProps, hasPaths); - ^^^^^^^^^^^^ - -polymer.html_script_10.js:1546: WARNING - Invalid type for parameter 4 of function runEffects. -Expected : Object|null|undefined -Found : * - - runEffects(this, this.__observeEffects, changedProps, oldProps, hasPaths); - ^^^^^^^^ - -polymer.html_script_10.js:1549: WARNING - Invalid type for parameter 1 of function runNotifyEffects. -Expected : Element|null -Found : PropertyEffects{__dataHasPaths:false, __dataToNotify:null} - - runNotifyEffects(this, notifyProps, changedProps, oldProps, hasPaths); - ^^^^ - -polymer.html_script_10.js:1549: WARNING - Invalid type for parameter 3 of function runNotifyEffects. -Expected : Object|null -Found : * - - runNotifyEffects(this, notifyProps, changedProps, oldProps, hasPaths); - ^^^^^^^^^^^^ - -polymer.html_script_10.js:1549: WARNING - Invalid type for parameter 4 of function runNotifyEffects. -Expected : Object|null -Found : * - - runNotifyEffects(this, notifyProps, changedProps, oldProps, hasPaths); - ^^^^^^^^ - -polymer.html_script_10.js:1552: WARNING - Property __dataCounter never defined on this of type PropertyEffects{__dataHasPaths:false, __dataToNotify:null} - if (this.__dataCounter == 1) { - ^^^^^^^^^^^^^^^^^^ - -polymer.html_script_10.js:1644: WARNING - Invalid type for parameter 1 of function notifySplices. -Expected : Element|null -Found : PropertyEffects - - notifySplices(this, array, info.path, splices); - ^^^^ - -polymer.html_script_10.js:1644: WARNING - Property path never defined on info of type Object{} - notifySplices(this, array, info.path, splices); - ^^^^^^^^^ - -polymer.html_script_10.js:1722: WARNING - Invalid type for parameter 1 of function notifySplice. -Expected : Element|null -Found : PropertyEffects - - notifySplice(this, array, info.path, len, items.length, []); - ^^^^ - -polymer.html_script_10.js:1722: WARNING - Property path never defined on info of type Object{} - notifySplice(this, array, info.path, len, items.length, []); - ^^^^^^^^^ - -polymer.html_script_10.js:1746: WARNING - Invalid type for parameter 1 of function notifySplice. -Expected : Element|null -Found : PropertyEffects - - notifySplice(this, array, info.path, array.length, 0, [ret]); - ^^^^ - -polymer.html_script_10.js:1746: WARNING - Property path never defined on info of type Object{} - notifySplice(this, array, info.path, array.length, 0, [ret]); - ^^^^^^^^^ - -polymer.html_script_10.js:1782: WARNING - Invalid type for parameter 1 of function notifySplice. -Expected : Element|null -Found : PropertyEffects - - notifySplice(this, array, info.path, start, items.length, ret); - ^^^^ - -polymer.html_script_10.js:1782: WARNING - Property path never defined on info of type Object{} - notifySplice(this, array, info.path, start, items.length, ret); - ^^^^^^^^^ - -polymer.html_script_10.js:1806: WARNING - Invalid type for parameter 1 of function notifySplice. -Expected : Element|null -Found : PropertyEffects - - notifySplice(this, array, info.path, 0, 0, [ret]); - ^^^^ - -polymer.html_script_10.js:1806: WARNING - Property path never defined on info of type Object{} - notifySplice(this, array, info.path, 0, 0, [ret]); - ^^^^^^^^^ - -polymer.html_script_10.js:1830: WARNING - Invalid type for parameter 1 of function notifySplice. -Expected : Element|null -Found : PropertyEffects - - notifySplice(this, array, info.path, 0, items.length, []); - ^^^^ - -polymer.html_script_10.js:1830: WARNING - Property path never defined on info of type Object{} - notifySplice(this, array, info.path, 0, items.length, []); - ^^^^^^^^^ - -polymer.html_script_10.js:1854: WARNING - Property path never defined on info of type Object{} - propPath = info.path; - ^^^^^^^^^ - -polymer.html_script_10.js:2226: WARNING - Property nodeList never defined on dom of type DocumentFragment - templateInfo.nodeList = dom.nodeList; - ^^^^^^^^^^^^ - -polymer.html_script_10.js:2255: WARNING - Property templateInfo never defined on dom of type DocumentFragment - let templateInfo = dom.templateInfo; - ^^^^^^^^^^^^^^^^ - -polymer.html_script_10.js:2293: WARNING - Property _parseTemplateNode never defined on propertyEffectsBase of type propertyEffectsBase<|function(new:propertyEffectsBase):?|> - let noted = super._parseTemplateNode(node, templateInfo, nodeInfo); - ^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_10.js:2301: WARNING - Function addBinding: called with 6 argument(s). Function requires at least 7 argument(s) and at most 7. - addBinding(this, templateInfo, nodeInfo, 'text', 'textContent', parts); - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_10.js:2358: WARNING - Property _parseTemplateNodeAttribute never defined on propertyEffectsBase of type propertyEffectsBase<|function(new:propertyEffectsBase):?|> - return super._parseTemplateNodeAttribute(node, templateInfo, nodeInfo, name, value); - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_10.js:2376: WARNING - Property _parseTemplateNestedTemplate never defined on propertyEffectsBase of type propertyEffectsBase<|function(new:propertyEffectsBase):?|> - let noted = super._parseTemplateNestedTemplate(node, templateInfo, nodeInfo); - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_10.js:2382: WARNING - Function addBinding: called with 6 argument(s). Function requires at least 7 argument(s) and at most 7. - addBinding(this, templateInfo, nodeInfo, 'property', '_host_' + source, parts); - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_10.js:2420: WARNING - Missing return statement. Function expected to return Array|null. - static _parseBindings(text, templateInfo) { - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_11.js:181: WARNING - Property prototype never defined on klass of type HTMLElement{__classProperties:Object|null} - let superCtor = Object.getPrototypeOf(klass.prototype).constructor; - ^^^^^^^^^^^^^^^ - -polymer.html_script_11.js:636: WARNING - Property $ never defined on this.root of type DocumentFragment - this.$ = this.root.$; - ^^^^^^^^^^^ - -polymer.html_script_11.js:766: WARNING - Property _parseTemplateContent never defined on polymerElementBase of type polymerElementBase<|function(new:polymerElementBase):?|> - return super._parseTemplateContent(template, templateInfo, nodeInfo); - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_22.js:853: WARNING - Function this.splice: called with 3 argument(s). Function requires at least 4 argument(s) and at most 4. - return this.splice(arrayOrPath, index, 1); - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_23.js:141: WARNING - Property is never defined on this of type PolymerGenerated - Polymer.DomModule.import(this.is, 'template') || - ^^^^^^^ - -polymer.html_script_23.js:146: WARNING - Property prototype never defined on this of type PolymerGenerated - this.prototype._template; - ^^^^^^^^^^^^^^ - -polymer.html_script_23.js:177: WARNING - Property _addMethodEventListenerToNode never defined on this of type PolymerGenerated - this._addMethodEventListenerToNode(this, l, info.listeners[l]); - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_23.js:188: WARNING - Property _ensureAttribute never defined on this of type PolymerGenerated - this._ensureAttribute(a, info.hostAttributes[a]); - ^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_23.js:304: WARNING - Type annotation references non-existent type Polymer.LegacyElement. - * @return {Polymer.LegacyElement} Generated class - ^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_23.js:313: WARNING - Invalid type for parameter 2 of function mixinBehaviors. -Expected : HTMLElement|null -Found : HTMLElement<|function(new:HTMLElement):?|> - - mixinBehaviors(info.behaviors, HTMLElement) : - ^^^^^^^^^^^ - -polymer.html_script_24.js:19: WARNING - Type annotation references non-existent type Polymer.LegacyElement. - * @return {Polymer.LegacyElement} Generated class - ^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_24.js:21: WARNING - Found two declarations for property _polymerFn on window.Polymer. - - window.Polymer._polymerFn = function(info) { - ^^^^^^^^^^^^^^^^^^^^^^^^^ - polymer.html_script_25.js:173: WARNING - Property mutableData never defined on this of type OptionalMutableData return mutablePropertyChange(this, property, value, old, this.mutableData); ^^^^^^^^^^^^^^^^ -polymer.html_script_26.js:118: WARNING - Property __dataHost never defined on this.__dataHost of type DataTemplate - let templateHost = this.__dataHost.__dataHost; - ^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_26.js:190: WARNING - Property __dataHost never defined on model.__dataHost of type DataTemplate - model = model.__dataHost.__dataHost; - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_26.js:435: WARNING - Returned type does not match declared return type. -Expected : TemplateInstanceBase|null -Found : polymer_html_script_26$classdecl$var2<|function(new:polymer_html_script_26$classdecl$var2,...?):undefined|>{prototype:polymer_html_script_26$classdecl$var2.prototype} - - return klass; - ^^^^^^^^^^^^^ - -polymer.html_script_28.js:49: WARNING - Cannot add property mutableData to a struct instance after it is constructed. - this.mutableData = true; - ^^^^^^^^^^^^^^^^ - -polymer.html_script_28.js:86: WARNING - Function $jscomp$this.render: called with 1 argument(s). Function requires at least 0 argument(s) and at most 0. - this.render(template); - ^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_28.js:94: WARNING - Property _stampTemplate never defined on this of type DomBind - this.root = this._stampTemplate(template); - ^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_28.js:100: WARNING - Property _enableProperties never defined on this of type DomBind{__children:Array, root:{$:?, firstChild:?} (loose)} - this._enableProperties(); - ^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_30.js:279: WARNING - Cannot add property __isDetached to a struct instance after it is constructed. - this.__isDetached = true; - ^^^^^^^^^^^^^^^^^ - -polymer.html_script_30.js:302: WARNING - Cannot add property template to a struct instance after it is constructed. - let template = this.template = this.querySelector('template'); - ^^^^^^^^^^^^^ - -polymer.html_script_30.js:318: WARNING - Property as never defined on this of type DomRepeat +polymer.html_script_30.js:319: WARNING - Property as never defined on this of type DomRepeat{template:Element|null} instanceProps[this.as] = true; ^^^^^^^ -polymer.html_script_30.js:319: WARNING - Property indexAs never defined on this of type DomRepeat +polymer.html_script_30.js:320: WARNING - Property indexAs never defined on this of type DomRepeat{template:Element|null} instanceProps[this.indexAs] = true; ^^^^^^^^^^^^ -polymer.html_script_30.js:320: WARNING - Property itemsIndexAs never defined on this of type DomRepeat +polymer.html_script_30.js:321: WARNING - Property itemsIndexAs never defined on this of type DomRepeat{template:Element|null} instanceProps[this.itemsIndexAs] = true; ^^^^^^^^^^^^^^^^^ -polymer.html_script_30.js:322: WARNING - Property mutableData never defined on this of type DomRepeat - mutableData: this.mutableData, - ^^^^^^^^^^^^^^^^ - -polymer.html_script_30.js:363: WARNING - Property __dataHost never defined on this of type DomRepeat +polymer.html_script_30.js:364: WARNING - Property __dataHost never defined on this of type DomRepeat return this.__dataHost._methodHost || this.__dataHost; ^^^^^^^^^^^^^^^ -polymer.html_script_30.js:415: WARNING - Property _targetFrameTime never defined on this of type DomRepeat +polymer.html_script_30.js:416: WARNING - Property _targetFrameTime never defined on this of type DomRepeat let ratio = this._targetFrameTime / (currChunkTime - this.__lastChunkTime); ^^^^^^^^^^^^^^^^^^^^^ -polymer.html_script_30.js:449: WARNING - Property delay never defined on this of type DomRepeat{__needFullRefresh:true, __observePaths:truthy} +polymer.html_script_30.js:450: WARNING - Property delay never defined on this of type DomRepeat{__needFullRefresh:true, __observePaths:truthy} this.__debounceRender(this.__render, this.delay); ^^^^^^^^^^ -polymer.html_script_30.js:463: WARNING - Invalid type for parameter 1 of function Polymer.Async.timeOut.after. -Expected : number -Found : number|undefined -More details: -The found type is a union that includes an unexpected type: undefined - , delay > 0 ? Polymer.Async.timeOut.after(delay) : Polymer.Async.microTask - ^^^^^ - -polymer.html_script_30.js:495: WARNING - Property _setRenderedItemCount never defined on this of type DomRepeat{__pool:{length:number} (loose)} +polymer.html_script_30.js:496: WARNING - Property _setRenderedItemCount never defined on this of type DomRepeat{__pool:{length:number} (loose)} this._setRenderedItemCount(this.__instances.length); ^^^^^^^^^^^^^^^^^^^^^^^^^^ -polymer.html_script_30.js:531: WARNING - Property as never defined on this of type DomRepeat{__instances:Object, __itemsIdxToInstIdx:Object{}, __limit:number, items:?=} +polymer.html_script_30.js:532: WARNING - Property as never defined on this of type DomRepeat{__instances:Object, __itemsIdxToInstIdx:Object{}, __limit:number, items:?=} inst._setPendingProperty(this.as, item); ^^^^^^^ -polymer.html_script_30.js:532: WARNING - Property indexAs never defined on this of type DomRepeat{__instances:Object, __itemsIdxToInstIdx:Object{}, __limit:number, items:?=} +polymer.html_script_30.js:533: WARNING - Property indexAs never defined on this of type DomRepeat{__instances:Object, __itemsIdxToInstIdx:Object{}, __limit:number, items:?=} inst._setPendingProperty(this.indexAs, instIdx); ^^^^^^^^^^^^ -polymer.html_script_30.js:533: WARNING - Property itemsIndexAs never defined on this of type DomRepeat{__instances:Object, __itemsIdxToInstIdx:Object{}, __limit:number, items:?=} +polymer.html_script_30.js:534: WARNING - Property itemsIndexAs never defined on this of type DomRepeat{__instances:Object, __itemsIdxToInstIdx:Object{}, __limit:number, items:?=} inst._setPendingProperty(this.itemsIndexAs, itemIdx); ^^^^^^^^^^^^^^^^^ -polymer.html_script_30.js:569: WARNING - Property as never defined on this of type DomRepeat +polymer.html_script_30.js:570: WARNING - Property as never defined on this of type DomRepeat model[this.as] = item; ^^^^^^^ -polymer.html_script_30.js:570: WARNING - Property indexAs never defined on this of type DomRepeat +polymer.html_script_30.js:571: WARNING - Property indexAs never defined on this of type DomRepeat model[this.indexAs] = instIdx; ^^^^^^^^^^^^ -polymer.html_script_30.js:571: WARNING - Property itemsIndexAs never defined on this of type DomRepeat +polymer.html_script_30.js:572: WARNING - Property itemsIndexAs never defined on this of type DomRepeat model[this.itemsIndexAs] = itemIdx; ^^^^^^^^^^^^^^^^^ -polymer.html_script_30.js:580: WARNING - Property as never defined on this of type DomRepeat{__pool:{pop:LOOSE_TOP_FUNCTION} (loose)} +polymer.html_script_30.js:581: WARNING - Property as never defined on this of type DomRepeat{__pool:{pop:LOOSE_TOP_FUNCTION} (loose)} inst._setPendingProperty(this.as, item); ^^^^^^^ -polymer.html_script_30.js:581: WARNING - Property indexAs never defined on this of type DomRepeat{__pool:{pop:LOOSE_TOP_FUNCTION} (loose)} +polymer.html_script_30.js:582: WARNING - Property indexAs never defined on this of type DomRepeat{__pool:{pop:LOOSE_TOP_FUNCTION} (loose)} inst._setPendingProperty(this.indexAs, instIdx); ^^^^^^^^^^^^ -polymer.html_script_30.js:582: WARNING - Property itemsIndexAs never defined on this of type DomRepeat{__pool:{pop:LOOSE_TOP_FUNCTION} (loose)} +polymer.html_script_30.js:583: WARNING - Property itemsIndexAs never defined on this of type DomRepeat{__pool:{pop:LOOSE_TOP_FUNCTION} (loose)} inst._setPendingProperty(this.itemsIndexAs, itemIdx); ^^^^^^^^^^^^^^^^^ -polymer.html_script_30.js:616: WARNING - Property as never defined on this of type DomRepeat{__instances:Object, __itemsIdxToInstIdx:Object} +polymer.html_script_30.js:617: WARNING - Property as never defined on this of type DomRepeat{__instances:Object, __itemsIdxToInstIdx:Object} let itemPath = this.as + (itemSubPath ? '.' + itemSubPath : ''); ^^^^^^^ -polymer.html_script_30.js:640: WARNING - Property as never defined on this of type DomRepeat +polymer.html_script_30.js:641: WARNING - Property as never defined on this of type DomRepeat return instance && instance[this.as]; ^^^^^^^ -polymer.html_script_30.js:654: WARNING - Property indexAs never defined on this of type DomRepeat +polymer.html_script_30.js:655: WARNING - Property indexAs never defined on this of type DomRepeat return instance && instance[this.indexAs]; ^^^^^^^^^^^^ -polymer.html_script_30.js:675: WARNING - Property template never defined on this of type DomRepeat - return Polymer.Templatize.modelForElement(this.template, el); - ^^^^^^^^^^^^^ - -polymer.html_script_31.js:142: WARNING - Property _lastIf never defined on this of type DomIf{__instance:?, if:?=, restamp:?=} - if (this.if != this._lastIf) { - ^^^^^^^^^^^^ - -polymer.html_script_31.js:147: WARNING - Cannot add property _lastIf to a struct instance after it is constructed. - this._lastIf = this.if; - ^^^^^^^^^^^^ - -polymer.html_script_31.js:170: WARNING - Cannot add property __ctor to a struct instance after it is constructed. - this.__ctor = Polymer.Templatize.templatize(template, this, { - ^^^^^^^^^^^ - -polymer.html_script_31.js:219: WARNING - Property __dataHost never defined on this of type DomIf{__instance:{_setPendingProperty:LOOSE_TOP_FUNCTION} (loose)} +polymer.html_script_31.js:221: WARNING - Property __dataHost never defined on this of type DomIf{__instance:{_setPendingProperty:LOOSE_TOP_FUNCTION} (loose)} this.__instance._setPendingProperty(prop, this.__dataHost[prop]); ^^^^^^^^^^^^^^^ -polymer.html_script_31.js:242: WARNING - Property if never defined on this of type DomIf +polymer.html_script_31.js:244: WARNING - Property if never defined on this of type DomIf let hidden = this.__hideTemplateChildren__ || !this.if; ^^^^^^^ -polymer.html_script_32.js:143: WARNING - Property items never defined on this of type ArraySelectorMixin +polymer.html_script_32.js:154: WARNING - Property items never defined on this of type ArraySelectorMixin if (selected.has(this.items[idx])) { ^^^^^^^^^^ -polymer.html_script_32.js:144: WARNING - Property items never defined on this of type ArraySelectorMixin +polymer.html_script_32.js:155: WARNING - Property items never defined on this of type ArraySelectorMixin selected.set(this.items[idx], idx); ^^^^^^^^^^ -polymer.html_script_32.js:155: WARNING - Property splice never defined on $jscomp$this of type ArraySelectorMixin{multi:truthy} - this.splice('selected', sidx, 1); - ^^^^^^^^^^^ - -polymer.html_script_32.js:157: WARNING - Cannot add property selected to a struct instance after it is constructed. - this.selected = this.selectedItem = null; - ^^^^^^^^^^^^^ - -polymer.html_script_32.js:157: WARNING - Cannot add property selectedItem to a struct instance after it is constructed. - this.selected = this.selectedItem = null; - ^^^^^^^^^^^^^^^^^ - -polymer.html_script_32.js:167: WARNING - Cannot add property __dataLinkedPaths to a struct instance after it is constructed. - this.__dataLinkedPaths = {}; - ^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_32.js:172: WARNING - Property linkPaths never defined on $jscomp$this of type ArraySelectorMixin - this.linkPaths('items.' + idx, 'selected.' + sidx++); - ^^^^^^^^^^^^^^ - -polymer.html_script_32.js:177: WARNING - Property linkPaths never defined on $jscomp$this of type ArraySelectorMixin - this.linkPaths('selected', 'items.' + idx); - ^^^^^^^^^^^^^^ - -polymer.html_script_32.js:178: WARNING - Property linkPaths never defined on $jscomp$this of type ArraySelectorMixin - this.linkPaths('selectedItem', 'items.' + idx); - ^^^^^^^^^^^^^^ - -polymer.html_script_32.js:189: WARNING - Cannot add property __dataLinkedPaths to a struct instance after it is constructed. - this.__dataLinkedPaths = {}; - ^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_32.js:196: WARNING - Cannot add property selected to a struct instance after it is constructed. - this.selected = this.multi ? [] : null - ^^^^^^^^^^^^^ - -polymer.html_script_32.js:197: WARNING - Cannot add property selectedItem to a struct instance after it is constructed. - this.selectedItem = null; - ^^^^^^^^^^^^^^^^^ - -polymer.html_script_32.js:217: WARNING - Property items never defined on this of type ArraySelectorMixin +polymer.html_script_32.js:228: WARNING - Property items never defined on this of type ArraySelectorMixin return this.isSelected(this.items[idx]); ^^^^^^^^^^ -polymer.html_script_32.js:233: WARNING - Property __dataLinkedPaths never defined on this of type ArraySelectorMixin - let selected = this.__dataLinkedPaths['items.' + idx]; - ^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_32.js:254: WARNING - Property splice never defined on this - this.splice('selected', sidx, 1); - ^^^^^^^^^^^ - -polymer.html_script_32.js:256: WARNING - Cannot add property selected to a struct instance after it is constructed. - this.selected = this.selectedItem = null; - ^^^^^^^^^^^^^ - -polymer.html_script_32.js:256: WARNING - Cannot add property selectedItem to a struct instance after it is constructed. - this.selected = this.selectedItem = null; - ^^^^^^^^^^^^^^^^^ - -polymer.html_script_32.js:267: WARNING - Property items never defined on this of type ArraySelectorMixin +polymer.html_script_32.js:278: WARNING - Property items never defined on this of type ArraySelectorMixin this.deselect(this.items[idx]); ^^^^^^^^^^ -polymer.html_script_32.js:277: WARNING - Property items never defined on this of type ArraySelectorMixin +polymer.html_script_32.js:288: WARNING - Property items never defined on this of type ArraySelectorMixin this.selectIndex(this.items.indexOf(item)); ^^^^^^^^^^ -polymer.html_script_32.js:287: WARNING - Property items never defined on this of type ArraySelectorMixin +polymer.html_script_32.js:298: WARNING - Property items never defined on this of type ArraySelectorMixin let item = this.items[idx]; ^^^^^^^^^^ -polymer.html_script_32.js:295: WARNING - Property push never defined on this of type ArraySelectorMixin{__selectedMap:{set:LOOSE_TOP_FUNCTION} (loose), multi:truthy=} - this.push('selected', item); - ^^^^^^^^^ - -polymer.html_script_32.js:297: WARNING - Cannot add property selected to a struct instance after it is constructed. - this.selected = this.selectedItem = item; - ^^^^^^^^^^^^^ - -polymer.html_script_32.js:297: WARNING - Cannot add property selectedItem to a struct instance after it is constructed. - this.selected = this.selectedItem = item; - ^^^^^^^^^^^^^^^^^ - polymer.html_script_34.js:5: WARNING - Property _mutablePropertyChange never defined on Polymer.MutableData of type function(?):? let mutablePropertyChange = Polymer.MutableData._mutablePropertyChange; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -0 error(s), 124 warning(s), 75.3% typed +0 error(s), 35 warning(s), 75.8% typed diff --git a/externs/closure-types.js b/externs/closure-types.js index 1f78651bc6..6c80856aa5 100644 --- a/externs/closure-types.js +++ b/externs/closure-types.js @@ -12,79 +12,82 @@ */ function Polymer_PropertyAccessors(){} /** -* @param {string} name -* @param {?string} old -* @param {?string} value +* @param {string} name Name of attribute that changed +* @param {?string} old Old attribute value +* @param {?string} value New attribute value */ Polymer_PropertyAccessors.prototype.attributeChangedCallback = function(name, old, value){}; /** */ Polymer_PropertyAccessors.prototype._initializeProperties = function(){}; /** -* @param {Object} props +* @param {Object} props Bag of property values that were overwritten + when creating property accessors. */ Polymer_PropertyAccessors.prototype._initializeProtoProperties = function(props){}; /** -* @param {Object} props +* @param {Object} props Bag of property values that were overwritten + when creating property accessors. */ Polymer_PropertyAccessors.prototype._initializeInstanceProperties = function(props){}; /** -* @param {string} attribute -* @param {string} value +* @param {string} attribute Name of attribute to ensure is set. +* @param {string} value of the attribute. */ Polymer_PropertyAccessors.prototype._ensureAttribute = function(attribute, value){}; /** -* @param {string} attribute -* @param {?string} value -* @param {*=} type +* @param {string} attribute Name of attribute to deserialize. +* @param {?string} value of the attribute. +* @param {*=} type type to deserialize to. */ Polymer_PropertyAccessors.prototype._attributeToProperty = function(attribute, value, type){}; /** -* @param {string} property -* @param {string=} attribute -* @param {*=} value +* @param {string} property Property name to reflect. +* @param {string=} attribute Attribute name to reflect. +* @param {*=} value Property value to refect. */ Polymer_PropertyAccessors.prototype._propertyToAttribute = function(property, attribute, value){}; /** -* @param {Element} node -* @param {*} value -* @param {string} attribute +* @param {Element} node Element to set attribute to. +* @param {*} value Value to serialize. +* @param {string} attribute Attribute name to serialize to. */ Polymer_PropertyAccessors.prototype._valueToNodeAttribute = function(node, value, attribute){}; /** -* @param {*} value +* @param {*} value Property value to serialize. * @return {(string|undefined)} */ Polymer_PropertyAccessors.prototype._serializeValue = function(value){}; /** -* @param {?string} value -* @param {*=} type +* @param {?string} value Attribute value to deserialize. +* @param {*=} type Type to deserialize the string to. * @return {*} */ Polymer_PropertyAccessors.prototype._deserializeValue = function(value, type){}; /** -* @param {string} property -* @param {boolean=} readOnly +* @param {string} property Name of the property +* @param {boolean=} readOnly When true, no setter is created; the + protected `_setProperty` function must be used to set the property */ Polymer_PropertyAccessors.prototype._createPropertyAccessor = function(property, readOnly){}; /** -* @param {string} property +* @param {string} property Property name * @return {boolean} */ Polymer_PropertyAccessors.prototype._hasAccessor = function(property){}; /** -* @param {string} property -* @param {*} value +* @param {string} property Name of the property +* @param {*} value Value to set */ Polymer_PropertyAccessors.prototype._setProperty = function(property, value){}; /** -* @param {string} property -* @param {*} value +* @param {string} property Name of the property +* @param {*} value Value to set * @return {boolean} */ Polymer_PropertyAccessors.prototype._setPendingProperty = function(property, value){}; /** -* @param {string} prop +* @param {string} prop Property name * @return {boolean} */ Polymer_PropertyAccessors.prototype._isPropertyPending = function(prop){}; @@ -101,82 +104,144 @@ Polymer_PropertyAccessors.prototype._flushProperties = function(){}; */ Polymer_PropertyAccessors.prototype.ready = function(){}; /** -* @param {Object} currentProps -* @param {Object} changedProps -* @param {Object} oldProps +* @param {!Object} currentProps Bag of all current accessor values +* @param {!Object} changedProps Bag of properties changed since the last + call to `_propertiesChanged` +* @param {!Object} oldProps Bag of previous values for each property + in `changedProps` */ Polymer_PropertyAccessors.prototype._propertiesChanged = function(currentProps, changedProps, oldProps){}; /** -* @param {string} property -* @param {*} value -* @param {*} old +* @param {string} property Property name +* @param {*} value New property value +* @param {*} old Previous property value * @return {boolean} */ Polymer_PropertyAccessors.prototype._shouldPropertyChange = function(property, value, old){}; /** +*/ +Polymer_PropertyAccessors.createPropertiesForAttributes = function(){}; +/** * @record */ function Polymer_TemplateStamp(){} /** -* @param {HTMLTemplateElement} template +* @param {HTMLTemplateElement} template Template to stamp * @return {DocumentFragment} */ Polymer_TemplateStamp.prototype._stampTemplate = function(template){}; /** -* @param {Node} node -* @param {string} eventName -* @param {string} methodName -* @param {*=} context +* @param {Node} node Node to add listener on +* @param {string} eventName Name of event +* @param {string} methodName Name of method +* @param {*=} context Context the method will be called on (defaults + to `node`) * @return {Function} */ Polymer_TemplateStamp.prototype._addMethodEventListenerToNode = function(node, eventName, methodName, context){}; /** -* @param {Node} node -* @param {string} eventName -* @param {Function} handler +* @param {Node} node Node to add event listener to +* @param {string} eventName Name of event +* @param {Function} handler Listener function to add */ Polymer_TemplateStamp.prototype._addEventListenerToNode = function(node, eventName, handler){}; /** -* @param {Node} node -* @param {string} eventName -* @param {Function} handler +* @param {Node} node Node to remove event listener from +* @param {string} eventName Name of event +* @param {Function} handler Listener function to remove */ Polymer_TemplateStamp.prototype._removeEventListenerFromNode = function(node, eventName, handler){}; /** +* @param {HTMLTemplateElement} template Template to parse +* @param {Object=} outerTemplateInfo Template metadata from the outer + template, for parsing nested templates +* @return {Object} +*/ +Polymer_TemplateStamp._parseTemplate = function(template, outerTemplateInfo){}; +/** +* @param {*} template +* @param {*} templateInfo +* @param {*} nodeInfo +*/ +Polymer_TemplateStamp._parseTemplateContent = function(template, templateInfo, nodeInfo){}; +/** +* @param {Node} node Node to parse +* @param {Object} templateInfo Template metadata for current template +* @param {Object} nodeInfo Node metadata for current template. +* @return {boolean} +*/ +Polymer_TemplateStamp._parseTemplateNode = function(node, templateInfo, nodeInfo){}; +/** +* @param {Node} root Root node whose `childNodes` will be parsed +* @param {Object} templateInfo Template metadata for current template +* @param {Object} nodeInfo Node metadata for current template. +*/ +Polymer_TemplateStamp._parseTemplateChildNodes = function(root, templateInfo, nodeInfo){}; +/** +* @param {HTMLTemplateElement} node Node to parse (a