Added custom response parsing to ModelSync.REST to make it easy for developers
to gain access to the full
Y.io() response object. Developers using
ModelSync.REST can either assign the
parseIOResponse property to
gain access to the full
Y.io() response object in their
or provide a custom implementation of the
serialize() method now receives the
action which the
sync() method was invoked with. [Ticket #2532625]
itemsproperty of the config object passed to ModelList's constructor. This change also applies to LazyModelList.
route()method now accepts an arbitrary number of callbacks enabling more reuse of routing code. For people familiar with Express.js' route middleware, this behaves the same. [Ticket #2532620]
eventsare being attached. [Ticket #2532326] [Jay Shirley, Jeff Pihach]
getAttrs()performance. [Ryan Grove]
Y.Array.flatten(). This method flattens arrays of arrays into a single flat array.
CustomEvent run-time performance optimizations.
afters CustomEvent instance properties have
been deprecated, and replaced with private arrays (instead of hashes).
If you're referring to the
afters properties directly,
you can set the
Y.CustomEvent.keepDeprecatedSubs to true, to restore
them, but you will incur a performance hit in doing so.
The rest of the CustomEvent API is driven by the new private arrays, and
does not require the
afters properties, so you should
keepDeprecatedSubs if your code is referring to the properties
If you are using the above properties directly, please file an enhancement request and we'll provide a public way to achieve the same results, without the performance hit before we remove the properties permanently.
b. Avoid new EventTarget when stoppedFn is not used.
c. Optimized mixing during the creation of a custom event object.
d. Optimized mixing done on the facade, during a fire with payload.
Performance results on Chrome 19/MacOS below, for the use case where we're iring with a payload:
BEFORE (3.6.0): EventTarget with attribute style publish, fire, with on/after listeners x 7,623 ops/sec
CURRENT (With fixes a, b, c): EventTarget with attribute style publish, fire, with on/after listeners x 23,642 ops/sec
BEFORE (3.6.0): Fire With Payload - 10 listeners x 27,918 ops/sec ±1.32% (54 runs sampled)
CURRENT (With fix d): Fire With Payload - 10 listeners x 63,362 ops/sec ±0.37% (58 runs sampled)
The benchmark tests can be found in src/event-custom/tests/benchmark
Log messages for the follow commits have more details:
e7415e71decf3d921161e8883270e16b433aa150 - subscribers/afters fix. 29f63996f8b69a7bb6d2e27f4d350c320998c0b2 - optimized payload mix fix.
CustomEvent memory optimizations.
firedWith which were holding onto a reference
to the last fired event facade. Now
_facade is reset to null after
the fire sequence, and
firedWith is only maintained for
This allows the facade from the last fired event to be GC'd whereas prior to this change it wasn't.
Changed event-synthetic, to support CustomEvent performance optimizations.
Mainly the deprecation of CustomEvent subscribers and afters instance properties, which event-synthetic was referring to directly. The direct reference was replaced by a public API method call.
See src/event-custom/HISTORY.md for more details about the deprecated properties.
event-tap was migrated from Gallery and it supports "fast-click" on touch
Added try/catch around the internal window unload listener event-base adds, so that YUI works in Chrome Packaged Apps. They don't support unload, but still have a window.onunload, so no real way to feature test without a try/catch anyway.
Ticket #2532682 Addressed issue in which drawing and filling the same shape independently resulted in bad VML rendering.
Ticket #2531432 Added data attribute to allow for passing svg path strings to a shape.
Ticket #2532495 Added generic (non-implementation specific) class names to shapes.
Ticket #2532611 Added toFront and toBack methods to shapes.
Ticket #2532612 Added ability to animate a shapes stroke and fill attributes when incuding the anim-shape submodule. All shape attributes are animatable.
Ticket #2532635 Added ability size the contents of a Graphic instance to fit into its parent container.
Prevent IO from maintaining cookies across requests in Node.js. [Ticket #2532676]
Remove "X-Requested-With" header from cross-domain XHRs. Setting any non-standard HTTP headers when performing a cross-domain request using CORS results in a required pre-flight OPTIONS request. Not adding this header by default allows the browser to communicate with a server which is not CORS-ready. [Ticket #2532673] [Clarence Leung]
Y.Pjax.defaultRoute, a static stack of middleware which forms the
default Pjax route. This is useful when overriding Pjax's default
by adding adding more specific route paths, or performing some operation after
the default behavior.
loadContent() method which is route middleware which loads content
from a server. This can be used with custom Pjax implementations which need to
have more control over how content is updated in the DOM.
Y.Pjax. Pulling out the content-handling
functionality allows it to be used by other components, like
Detailed overview of all changes (including protected/private) @ https://gist.github.com/3522590
Added Forced-Axis and Dual-Axis Support. ScrollView now has an (optional)
property that can be declared with values:
Added: Initial support for RTL (Right-To-Left) layouts (#2531874).
Added: Unit test coverage for scrollview-base and scrollview-paginator (#2532288, #2532287)
Moved: Paginator’s scrollTo() method has been deprecated and replaced with scrollToIndex. (##2530145)
Moved the following ScrollView static properties (now deprecated) to instance attributes for more control SNAP_DURATION to 'snapDuration' SNAP_EASING to 'snapEasing' EASING to 'easing' FRAME_STEP to 'frameDuration' BOUNCE_RANGE to 'bounceRange'
Fix: Mousewheel events on a horizontally scrolling instance no longer prevent page scrolling (#2532739)
Fix: Mousewheel events now properly update the
Fix: Improved reliability of the scrollEnd event. Now it now only fires once per scrolling sequence, instead of sometimes twice.
Fix: Resolved issue where multiple listeners could sometimes be added for drag and flick events.
Fix: Improved gesture event detachment
Fix: Refactored _flickFrame to do less attribute lookups, helpful for performance reasons
Fix: Resolved issue where scrollview.pages.scrollTo may not actually scroll to the desired page, or may cause a lock-up of the widget.
Fixed regression in
Widget.getByNode(), introduced in 3.5.0, where the
Widget would not be found if the user changed the id of the boundingBox node,
after the widget was rendered.
We go back to using the Node's guid for caching instead of the DOM node id.
The change was originally made to lay the groundwork for string based rendering, where a boundingBox node reference would not be present during initialization.
This can still be achieved post-render by populating the instance map, after a Node reference has been established/added to the DOM (when we get there).
Y.merge()by 10 to 40% (depending on the browser). [Ryan Grove]