* Uses `window.ShadyCSS.cssBuild` to avoid doing unnecessary work in `processElementStyles`
* Stores the list of active in-use behaviors in a legacy element's `behaviors` property. This only matters in the exotic case when elements with behaviors are extended with more behaviors and previously the list included only the subclasses behaviors (although the element otherwise worked as expected).
Set using `Polymer.setLegacyOptimizations(true)`. This flag enables optimizaitons including, always stripping whitespace from templates and avoiding cloning element templates (assumes no inheritance is used)
Also re-enables dir-mixin.
Reverts an unintentional breaking change. Previously (2.3.x) property accessors were created only for properties in the properties object which had explicit property effects. In 2.4.0, property accessors were created for any property name returned in the properties object. This was a breaking change in rare cases (for example in https://github.com/PolymerElements/iron-a11y-keys-behavior).
This change reverts the 2.4.0 behavior. Accessors are now again only added for properties which have explicit effects. In addition, `_addPropetyToAttributeMap` was added to `PropertiesChanged` to record a mapping from the attribute to the property name (needed for deserialization).
Find the correct spot to add "included" styles in the template by
keeping track of which "concrete" style in the template we have
encountered and inserting the "included" styles before them.
Fixes#4975
* make static: propertyNameForAttribute, attributeNameForProperty, typeForProperty
* method that take classes should consistently use `constructor` as the arg name.
* when using `properties`, the property name for a given attribute is discovered using the names in `properties` and reverse mapping the `attributeNameForProperty` attribute.
* Hide _own* getters since they are unnecessary
* declared properties always have accessors unless they would stomp existing accessors (or have property effects)
Previously Polymer collapsed any included shared styles into 1 style element. This prevents the browser from recognizing shared style elements as similar and optimizing them. With this change, we no longer collapse styles. Note, included styles are still currently collapsed by ShadyCSS but the polyfill will likely not do this in the future.
- Extend PropertyAccessors for greater flexibility
- Detect if `:dir` is used in order to activate runtime features
- Add to LegacyElement for 1.x compatibility
- clean up `ElementMixin._finalizeTemplate`
This forces a property listed in `properties` to create a property accessor regardless of whether or not it is needed for effects. This allows using `_propertiesChanged` to process changes for properties that may not have effects.