src/cm/media/js/lib/yui/yui_3.10.3/releasenotes/HISTORY.attribute.md
changeset 525 89ef5ed3c48b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cm/media/js/lib/yui/yui_3.10.3/releasenotes/HISTORY.attribute.md	Tue Jul 16 14:29:46 2013 +0200
@@ -0,0 +1,329 @@
+Attribute Change History
+========================
+
+3.10.3
+------
+
+* No changes.
+
+3.10.2
+------
+
+* opts now passed to setter correctly, when using AttributeObservable.
+
+  This feature was added in 3.8.1 (below), but didn't work for
+  AttributeObservable.
+
+3.10.1
+------
+
+* No changes.
+
+3.10.0
+------
+
+* Significant performance improvements in common Attribute operations.
+
+  For example, on Chrome:
+
+      `get()` is 4 times faster
+      `set()` is 3 times faster
+
+  Major performance related changes are listed below.
+
+  Commit messages have detailed descriptions of incremental changes, and the
+  benefits introduced.
+
+* We retrieve and pass the internally stored attribute configuration in State
+  by reference in a lot more places, across methods, results in less function
+  hops, and removing the need for each method to go and ask for the configuration.
+
+* Avoid the delete operator for transient configuration properties, and just set
+  to null or other falsey values as appropriate.
+
+* Store final attribute config in State by reference, as opposed to merging
+  since it's isolated already higher up in the call stack.
+
+3.9.1
+-----
+
+* No changes.
+
+3.9.0
+-----
+
+* No changes.
+
+3.8.1
+-----
+
+* Invalid values supplied during Attribute initialization that fail setter
+  validation will now fallback the default value defined in `ATTRS`.
+  [Ticket #2528732] [redbat]
+
+* Attribute validators and setters now receive set's `options` argument. This is
+  now a part of `AttributeCore`. [Ticket #2532810] [Satyam]
+
+3.8.0
+-----
+
+* [!] The `AttributeEvents` class extension and the `attribute-events` module
+  have been renamed to `AttributeObservable` and `attribute-observable`
+  respectively. The old names are deprecated, but have been retained as aliases
+  for backwards compatibility. They will be removed in a future version of YUI.
+
+* [!] The `AttributeComplex` class extension and the `attribute-complex` module
+  have been deprecated. This functionality is now part of `AttributeCore`, and
+  this extension and module are no longer needed.
+
+* Moved AttributeCore's protected `_protectAttrs()` utility method to a public
+  static method, `protectAttrs()`, which is available on both `Y.Attribute` and
+  `Y.AttributeCore` namespaces.
+
+3.7.3
+-----
+
+* No changes.
+
+3.7.2
+-----
+
+* No changes.
+
+3.7.1
+-----
+
+* No changes.
+
+3.7.0
+-----
+
+  * Removed unused call to `get` in `getAttrs()`, improving `getAttrs()`
+    performance. [Ryan Grove]
+
+3.6.0
+-----
+
+  * Optimized valueFn handling, so that valueFn is not called for Attribute,
+    if user provides a value.
+
+  * Support opts argument for setAttrs() also. Passed through to set, and ends up
+    mixed into the event payload for all the attributes set through setAttrs()
+
+3.5.1
+-----
+
+  * No changes.
+
+3.5.0
+-----
+
+  * Broke Y.Attribute up into:
+
+    - Y.AttributeCore
+    - Y.AttributeEvents
+    - Y.AttributeExtras
+
+    To support core Attribute usage, without Events, but still allow upgrade
+    path to add Events, if required.
+
+    Y.AttributeCore is likely to form the basis for BaseCore and WidgetCore
+    (ala Node Plugins, where low-level state change events are not required).
+
+    Y.Attribute's public and protected API reimain unchanged, and loader will
+    pull in the new dependencies.
+
+    However if you're manually pulling in attribute-base, you'll need to
+    manually pull in attribute-core, attribute-events and attribute-extras
+    before it.
+
+    Summary:
+
+    Y.Attribute     - Common Attribute Functionality (100% backwards compat)
+    Y.AttributeCore - Lightest Attribute support, without CustomEvents
+
+    --
+
+    Y.AttributeEvents - Augmentable Attribute Events support
+    Y.AttributeExtras - Augmentable 20% usage for Attribute (modifyAttr, removeAttr, reset ...)
+    Y.AttributeComplex - Augmentable support for constructor complex attribute parsing ({"x.y":foo})
+
+    --
+
+    Y.Attribute = Y.AttributeCore + Y.AttributeEvents + Y.AttributeExtras
+
+    --
+
+    Modules:
+
+    "attribute-base" : Y.Attribute
+    "attribute-core" : Y.AttributeCore
+
+    "attribute-complex" : Y.AttributeComplex mixin (mixed into Y.Attribute)
+    "attribute-events" : Y.AttributeEvents mixin
+    "attribute-extras" : Y.AttributeExtras mixin
+
+  * Changed State's internal data structure, to store pairs by
+    [name][property], instead of [property][name] to improve performance
+    (most Attribute operations are name centric, not property centric).
+
+    If you're working directly with Attribute's private _state.data, you
+    may need to update your code to account for the change in structure.
+
+  * Attribute now passes the attribute name to valueFn, allowing users to
+    write shared valueFn impls across attributes.
+
+3.4.1
+-----
+
+  * No changes.
+
+3.4.0
+-----
+
+  * Added params to constructor, to support call to addAttrs on construction
+    with user values, when augmenting and invoking constructor manually.
+
+    Also broke out addAttrs logic on construction (introduced for Node),
+    into it's own _initAttrs method to facilitate customization.
+
+3.3.0
+-----
+
+  * Changed instanceof to Y.instanceOf, to prevent leaks in IE7
+
+3.2.0
+-----
+
+  * Added protected helper method (_getAttrCfg) to return the configuration
+    for a given attribute.
+
+3.1.1
+-----
+
+  * Fixed ticket #2528753 : Sub attribute value crashed after setting another
+    sub attribute.
+
+3.1.0
+-----
+
+  * writeOnce can be set to "initOnly", which can be used
+    to prevent the user from setting the value outside of the initial
+    configuration when using the addAttrs.
+
+    When used with Base, this means that the user can only define a
+    value for the Attribute during construction.
+
+  * Attribute change events are now published with the defaultTargetOnly
+    property set to true.
+
+  * newVal property of event object passed to change event listeners will
+    now be the value returned from the Attribute's getter (if defined)
+
+  * setter, getter, validator and valueFn can now be specified as
+    strings, referring to the method names to be invoked on the Attribute
+    instance.
+
+3.0.0
+-----
+
+  * set/get can now be called for ad-hoc attributes (attributes which
+    have not been added/configured).
+
+  * Fixed issue where custom getters were being called with undefined values,
+    for the initial set.
+
+  * Limited the case for which an attribute will not notify after listeners,
+    if the value is unchanged after a set, to primitive values (values for
+    which Lang.isObject(newVal) returns false).
+
+    This allows after listeners to be invoked, when resetting the value to
+    the same object reference, which has properties updated, or arrays with
+    elements modified.
+
+  * Attribute broken up into attribute-base and attribute-complex submodules.
+
+    attribute-complex adds support for complex attributes ({x.y.z : 5}) to
+    addAttrs.
+
+3.0.0 beta 1
+------------
+
+  * Removed Attribute.CLONE support in the interests of simplicity.
+    Was not being used. Can re-evaluate support if real world demand
+    for it exists.
+
+  * Changed "set" and "get" configuration properties for setter and
+    getter methods to "setter" and "getter" respectively.
+
+  * Added support for setter to return Attribute.INVALID_VALUE
+    to prevent attribute state from being changed.
+
+    This allows developers to combine setter and validator
+    functionality into one method if performance optimization
+    is required.
+
+  * "validator" is now invoked before "setter".
+
+  * Renamed xxxAtt and xxxAtts methods to xxxAttr, xxxAttrs for
+    consistency.
+
+  * "after" listeners are only notified if attribute value really
+    changes (preVal !== newVal).
+
+  * Extending classes can now overwrite ATTRS configuration properties
+    from super classes, including writeOnce and readOnly attributes.
+
+    The ATTRS configurations are merged across the class hierarchy,
+    before they are used to initialize the attributes.
+
+  * addAttr now prevents re-adding attributes which are already
+    configured in order to maintain consistent state.
+
+  * Event prefix wrapper functions (on, after etc.) removed -
+    Event.Target now accepts an event prefix configuration value
+
+  * Added additional log messages to assist with debugging.
+
+  * Attribute change events are no longer fired for initial set.
+
+  * Split up State add/get/remove into add/addAll, get/getAll,
+    remove/removeAll to avoid having to create object literals for
+    critical path [ add/get single key values ].
+
+  * Attribute getter, setter, validator now also receive attribute name
+    as the 2nd arg (val, name).
+
+  * If Attributes initialized through addAttrs have a user provided value
+    which is not valid, the initial attribute value will revert to the
+    default value in the attribute configuration, if it exists.
+
+  * reset() no longer resets readOnly or writeOnce attributes. Only
+    publically settable values are reset.
+
+  * Added modifyAttr method, to allow component developer to modify
+    configuration of an attribute which has already been added. The set of
+    attribute configuration properties which can be modified after it
+    has been added are limited to getter, readOnly, writeOnce and broadcast.
+
+  * Added support for lazy attribute configuration. Base uses this feature
+    to lazily intialize all Attributes on the first call to get/set, for
+    performance optimization.
+
+    lazyAdd:true/false can be used to over-ride this behavior for a
+    particular attribute.
+
+3.0.0PR2
+--------
+
+  * Added valueFn support, to allowing static
+    attribute values configuration to set instance
+    based values.
+
+  * Added reset method.
+
+  * Added private setter for use by class implementation
+    code to set readOnly, writeOnce values.
+
+3.0.0PR1 - Initial release
+--------------------------