src/cm/media/js/lib/yui/yui_3.10.3/releasenotes/HISTORY.base.md
author gibus
Tue, 16 Jul 2013 14:29:46 +0200
changeset 525 89ef5ed3c48b
permissions -rw-r--r--
Upgrades to yui 3.10.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
Base Change History
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
===================
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
3.10.3
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
* No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
3.10.2
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
* No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
3.10.1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
* No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
3.10.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
* Significant performance improvements in common Base/BaseCore operations.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
  For example, on Chrome:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
    `new BaseCore()` is 3 times faster
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
    `BaseCore set()` is 3 times faster
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
    `BaseCore get()` is 5 times faster
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
  In addition to the above basic `BaseCore` numbers, improvements in CustomEvent
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
  performance, result in the following improvements for `Base`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
    `new Base()` is 4 times faster
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
    `Base set()` is 4 times faster
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
    `Base get()` is 5 times faster
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
  Major performance related changes are listed in the list of updates below.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
  Commit messages have detailed descriptions of incremental changes, and the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
  benefits introduced.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
* [!] The result of static `ATTRS` aggregation is now cached during the creation of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
  the first instance of a given "class", and the cached results are reused for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
  subsequent instances.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
  This provides significant performance benefits, but has the potential to introduce
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
  a backwards compatibility issue in the hopefully rare circumstance that you're
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
  modifying the static ATTRS collection directly, after the first instance is created.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
  [!] If you are modifying static `ATTRS` collection directly after an instance is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
  created (e.g. if an optional module comes in and updates the collection dynamically),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
  you will need to change the implementation to use the static `Y.Base.modifyAttrs()`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
  or `Y.BaseCore.modifyAttrs()` method, so we can mark the cached aggregation 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
  dirty, and recompute it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
      `Y.Base.modifyAttrs(MyClass, {..changes to merge..})`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
  `Base.create` and `Base.mix` will take care of this internally, so you only need 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
  to use the above methods if your own code is touching the ATTRS object on a class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
  Additionaly, `Base.create` and `Base.mix` will add the `modifyAttrs` to your created
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
  class, so you can also call it directly on the class. e.g. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
      `MyCreatedClass.modifyAttrs({..changes to merge..})`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
3.9.1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
* No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
3.9.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
* No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
3.8.1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
* No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
3.8.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
* `Y.Base.create()` can now be used with `Y.BaseCore`, in addition to its
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
  existing usage with `Y.Base`. This allows non-observable, BaseCore hierarchies
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
  to use class extensions.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
* Extracted the `Y.BaseObservable` class extension from `Y.Base`. This is a new
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
  class extension for `Y.BaseCore` which adds support for observability. This
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
  allows BaseCore subclasses to mix-in BaseObservable at runtime, bringing their
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
  functionality up to that of `Y.Base`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
3.7.3
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
* No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
3.7.2
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
* No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
3.7.1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
* No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
3.7.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
* No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
3.6.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
  * "value" defined in a subclass ATTRS definition, will now override
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
    "valueFn" for the same attribute from the superclass chain.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
    Previously, "value" would only override "value" and "valueFn"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
    would only overide "valueFn", and in the aggregated set of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
    attributes, "valueFn" would take precedence over "value".
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
    This meant that subclasses had to define a "valueFn" to overide
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
    superclasses, if the superclass used "valueFn".
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
3.5.1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
  * No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
  * Only invoke Base constructor logic once to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
    support multi-inheritance scenario in which
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
    an extension passed to Base.create inherits from Base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
    itself.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
    NOTE: To support multiple inhertiance more deeply, we'd
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
    need to remove the hasOwnProperty restriction around object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
    key iteration.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
  * Added Y.BaseCore which is core Base functionality without
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
    Custom Events (it uses Y.AttributeCore instead of Y.Attribute).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
    Y.BaseCore still maintains the ATTRS handling, init/destroy
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
    lifecycle and plugin support, but doesn't fire any custom evnets
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
    of it's own (the idea is that it will the base for Node-Plugin
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
    type components, built off of a WidgetCore)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
    Y.Base is now Y.BaseCore + Y.Attribute, and is 100% backwards
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
    compatible.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
    Summary:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
    Y.Attribute     - Common Attribute Functionality (100% backwards compat)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
    Y.Base          - Common Base Functionality (100% backwards compat)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
    Y.AttributeCore - Lightest Attribute support, without CustomEvents
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
    Y.BaseCore      - Lightest Base support, without CustomEvents
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
    --
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
    Y.AttributeEvents - Augmentable Attribute Events support
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
    Y.AttributeExtras - Augmentable 20% usage for Attribute (modifyAttr, removeAttr, reset ...)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
    Y.AttributeComplex - Augmentable support for constructor complex attribute parsing ({"x.y":foo})
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
    --
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
    Y.Attribute = Y.AttributeCore + Y.AttributeEvents + Y.AttributeExtras
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
    Y.Base      = Y.BaseCore + Y.Attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
    --
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
    Modules:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
    "base-base" : Y.Base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
    "base-core" : Y.BaseCore
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
    "base-build" : Y.Base.build/create/mix mixin
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
  * Extended Base.create/mix support for _buildCfg, to Extensions, mainly so that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
    extensions can define a whitelist of statics which need to be copied to the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
    main class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
    e.g.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
    MyExtension._buildCfg = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
       aggregates:["newPropsToAggregate"...],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
       custom: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
           newPropsToCustomMix
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
       },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
       statics: ["newPropsToCopy"]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
3.4.1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
  * No changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
3.4.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
  * Base now destroys plugins before destroying itself
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
  * Base.create/mix extensions can now define initializer and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
    destructor prototype functions, which will get invoked after
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
    the initializer for the host class into which they are mixed and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
    before it's destructor.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
  * Use a hash version of whitelist mix for improved performance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
    Also removed non-required hasOwnProperty check and delete.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
3.3.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
  * Fixed Base.mix when used on a class created using Base.create
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
  * toString no longer inadvertently stamps the object, however,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
    we now stamp Base objects in the constructor, to support
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
    use cases where the "toString" stamping was implicitly being
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
    relied upon (e.g. in DD, as hashkeys).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
3.2.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
  * Fixed Base.create to properly isolate ATTRS on extensions
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
3.1.1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
  * No changes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
3.1.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
  * As the final step in the destroy phase, Base now does a detachAll() to avoid invoking listeners
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
    which may be waiting to be in an async. step which occurs after destruction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
  * "init" and "destroy" events are now published with the defaultTargetOnly property set to true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
  * Added support for MyClass.EVENT_PREFIX to allow developers
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
    to define their own event prefix
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
  * Made "init" and "destroy" events fireOnce:true (along with
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
    "render" in Widget), so that subscriptions made after the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
    events are fired, are notified immediately.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
  * Dynamic and non-dynamically built classes now have their
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
    extensions instantiated the same way - during _initHierarchy.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
  * Updated ATTRS handling for Base.build, so that ATTRS are
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
    also aggregated at the attribute configuration object level,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
    allowing extensions to add to, or overwrite, attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
    configuration properties on the host.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
  * Added sugar Base.create and Base.mix methods on top of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
    Base.build, to simplify the 2 main use cases:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
    1) Creating a completely new class which uses extensions.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
    2) Mixing in extensions to an existing class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
  * Documented non-attribute on, after, bubbleTargets and plugins
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
    property support in the Base constructor config argument
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
3.0.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
-----
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
  * Fixed hasImpl method on built classes, to look up the class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
    hierarchy for applied extensions.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
  * Plugin.Host removed from base-base module and delivered as it's
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
    own module - "pluginhost"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
  * base broken up into..
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
     base-base: Provides class hierarchy support for ATTRS and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
     initialization
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
     base-build: Provides Extension support in the form of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
     Base.build
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
     base-pluginhost: Augments Plugin.Host to Base, adding plugin
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
     support
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
3.0.0 beta 1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
------------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
  * Config argument for init event now merged into the event facade,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
    instead of being passed separately (available as e.cfg).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
  * Removed Base.create. On review, considered to be overkill.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
    Users can easily create new instances, using Base.build
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
  * Moved PluginHost down from Widget to Base, since utils and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
    Node will also support Plugins.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
  * PluginHost.plug and unplug now accept the plugin class as
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
    arguments [plug(pluginClass, cfg) and unplug(pluginClass)].
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
  * Split base module up into base-base and base-build.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
  * Added lazy attribute initialization support, to improve performance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
    This also removes order dependency when processing ATTRS for a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
    particular class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
    If a get/set call is made for an uninitialized attribute A, in the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
    getter/setter/validator or valueFns of another attribute B, A will
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
    be intiailized on the fly.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
  * Added ability to subscribe to on/after events through the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
    constructor config object, e.g.:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
      new MyBaseObject({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
         on: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
            init: handlerFn,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
            myAttrChange: handlerFn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
	     },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
	     after: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
	       init: handlerFn,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
	       myAttrChange: handlerFn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
	     },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
	     ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
      });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
  * Developers can now override the default clone behavior we use to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
    isolate default ATTRS config values, using cloneDefaultValue, e.g.:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
    ATTRS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
      myAttr : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
      	value: AnObjectOrArrayReference
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
	    cloneDefaultValue: true|false|"deep"|"shallow"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
      }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
    If the cloneDefaultValue property is not defined, Base will clone
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
    any Arrays or Object literals which are used as default values when
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
    configuring attributes for an instance, so that updates to instance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
    values do not modify the default value.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
    This behavior can be over-ridden using the cloneDefaultValue property:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
    true, deep:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
      Use Y.clone to protect the default value.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
    shallow:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
      Use Y.merge, to protect the default value.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
    false:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
      Don't clone Arrays or Object literals. The value is intended
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
      to be used by reference, for example, when it points to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
      a utility object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
  * Base.plug and Base.unplug used to add static Plugins (default plugins
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
    for a class). Replaces static PLUGINS array, allowing subclasses to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
    easily unplug static plugins added higher up in the hierarchy.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
  * Base adds all attributes lazily. This means attributes don't get
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
    initialized until the first call to get/set, speeding up construction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
    of Base based objects.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
    Attributes which have setters which set some other state in the object,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
    can configure the attribute to disable lazy initialization, by setting
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
    lazyAdd:false as part of their attribute configuration, so that the setter
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
    gets invoked during construction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
3.0.0PR1 - Initial release
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
--------------------------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372