Skip to content

Latest commit

 

History

History
1203 lines (791 loc) · 90.7 KB

CHANGELOG.md

File metadata and controls

1203 lines (791 loc) · 90.7 KB

5.4.1 (2017-06-14)

Bug Fixes

  • ajax: Only set timeout & responseType if request is asynchronous (#2486) (380fbcf)
  • audit: will now properly mirror source if durations are Observable.empty() (#2595) (6ded82e)
  • elementAt: will now properly unsubscribe when it completes or errors (#2501) (a400cab)
  • ErrorObservable: will now propagate errors properly when used in a catch after fromPromise. (#2552) (cf88a20)
  • groupBy: group duration notifiers will now properly unsubscribe and clean up (#2662) (ab92083), closes #2660 #2661
  • Observable: errors thrown in observer/handlers without an operator applied will no longer be swallowed (#2626) (c250afc), closes #2565
  • reduce: type definitions overloads for TypeScript are now in proper order (#2523) (ccc0647)
  • Schedulers: Fix issue where canceling an asap or animationFrame action early could throw (#2638) (fc39043)

5.4.0 (2017-05-09)

Features

  • shareReplay: adds shareReplay variant of publishReplay (#2443) (5a2266a)
  • skipLast: add skipLast operator (#2316) (4ffbbe5), closes #1404
  • TypeScript: fromPromise accepts PromiseLike object (#2505) (ade1fd5)

5.3.3 (2017-05-09)

Bug Fixes

  • delayWhen: correctly handle synchronous duration observable (#2589) (695f280), closes #2587
  • race: allow TypeScript support for array of observables other than rest param (#2548) (ace553c)
  • Subscriber: do not call complete with undefined value param (#2559) (3d63de2)

(NOTE: 5.3.2 was a broken release and was removed)

5.3.1 (2017-05-02)

Bug Fixes

  • AsyncAction: rescheduling an action with the same delay before it has executed will now schedule appropriately. (#2580) (281760e)
  • closure: make root.ts work with closure (#2546) (0ecf55d)
  • tests: add missing babel-polyfill to package.json (b277ce9), closes #2261
  • withLatestFrom: change from hot to cold observable in marble test (0c65446), closes #2526

5.3.0 (2017-04-03)

Bug Fixes

  • catch: return type is now the union of input types (#2478) (840def0)
  • forEach: fix a temporal dead zone issue in forEach. (#2474) (e9e9801)
  • multicast: Ensure ConnectableObservables returned by multicast are state-isolated. (aaa9e6b)
  • reduce: proper TypeScript signature overload ordering (#2382) (f6a4951), closes #2338
  • SafeSubscriber: SafeSubscriber shouldn't mutate incoming Observers. (a1778e0)
  • timeout: Cancels scheduled timeout, if no longer needed (3e9d529), closes #2134 #2244 #2355 #2347 #2353 #2254 #2372 #1301
  • zipAll: complete when the source is empty (712fece)

Features

  • delayWhen: add index to the selector function (5d6291e)
  • symbol exports: symbols now also exported without $$ prefix to work with Babel UMD exporting (#2435) (747bef6), closes #2415

Performance Improvements

  • bufferCount: optimize bufferCount operator (#2359) (28d0883)

April Fools

  • smooth: smooth() was never really a thing. Sorry, folks. :D

5.2.0 (2017-02-21)

Bug Fixes

  • ajax: will set withCredentials after open on XHR for IE10 (#2332) (0ab1d3b)
  • bindCallback: emit undefined when callback is without arguments (915a2a8)
  • bindNodeCallback: emit undefined when callback has no success arguments (8b81fc6), closes #2254
  • bindNodeCallback: errors thrown in callback will be scheduled if a scheduler is provided (#2344) (82ec4f1)
  • concat: will now return Observable when given a single object implementing Symbol.observable (#2387) (f5d035a)
  • ErrorObservable: remove type constraint to error value (2f951cd), closes #2395
  • forkJoin: add type signature for single observable with selector (7983b91), closes #2347
  • merge: return Observable when called with single lowerCaseO (85752eb)
  • mergeAll: introduce variant support <T, R> for mergeMap (656f2b3), closes #2372
  • single: predicate function receives indicies starting at 0 (#2396) (c81882f)
  • subscribeToResult: accept array-like as result (14685ba)

Features

  • webSocket: Add binaryType to config object (86acbd1), closes #2353
  • windowTime: maxWindowSize parameter in windowTime operator (381be3f), closes #1301

5.1.1 (2017-02-13)

Bug Fixes

  • bindCallback: input function context can now be properly set via output function (#2319) (cb91c76)
  • bindNodeCallback: input function context can now be properly set via output function (#2320) (3ec315d)
  • Subscription: fold ChildSubscription logic into Subscriber to prevent operators from leaking ChildSubscriptions. (#2360) (22e4c17), closes #2244 #2355

5.1.0 (2017-02-01)

Bug Fixes

  • catch: update the catch operator to dispose inner subscriptions if the catch subscription is di (#2271) (8a1e089)
  • combineLatest: Don't mutate array of observables passed to (#2276) (9b73c46)
  • ISubscription: update type definition of ISubscription::closed (#2249) (0c304a2)
  • Observable: Ensure the generic type of the Observer passed to Observable's initializer function is the same. (51a0bc1), closes #2166
  • Observable: errors thrown during subscription are now properly sent down error channel (#2313) (d4a9aac), closes #1833
  • reduce: index will properly start at 1 if no seed is provided, to match native Array reduce behavior (30a4ca4), closes #2290
  • repeatWhen: resulting observable will wait for the source to complete, even if a hot notifier completes first. (#2209) (c65a098), closes #2054
  • Subject: ensure subject properly throws ObjectUnsubscribedError when unsubscribed then resubscribed to (#2318) (41489eb)
  • TestScheduler: helper methods return proper types, HotObservable and ColdObservable instead of Observable (#2305) (758aae9)
  • windowTime: ensure windows created when only a timespan is passed are closed and cleaned up properly. (#2278) (d4533c4)

Features

  • fromEventPattern: support optional removeHandler (86960c2)
  • fromEventPattern: support pass signal from addHandler to removeHandler (01d0622)

5.0.3 (2017-01-05)

Bug Fixes

  • observeOn: seal memory leak involving old notifications (9664a38), closes #2244
  • Subscription: add will return Subscription that removes itself when unsubscribed (375d4a5)
  • TypeScript: interfaces that accepted Scheduler now accept IScheduler interface (a0d28a8)

5.0.2 (2016-12-23)

Bug Fixes

  • ajax: upload progress is now set correctly (#2200) (1a83041)
  • groupBy: Fix groupBy to dispose of outer subscription. (#2201) (2269618)

5.0.1 (2016-12-13)

Bug Fixes

  • TypeScript: pin to TypeScript 2.0.x, fix errors with Error subclassing (300504c)

5.0.0 (2016-12-13)

Bug Fixes

  • race: unsubscribe raced observables with immediate scheduler (#2158) (7dd533b)
  • SubscribeOnObservable: Add the source subscription to the action disposable so the source will (64e3815)

5.0.0-rc.5 (2016-12-07)

Bug Fixes

  • AjaxObservable: catch XHR send failures to observer (#2159) (128fb9c)
  • distinctKey: Removed accidental leftover reference of distinctKey (9fd8096), closes #2161
  • errors: Better error message when you return non-observable things, (#2152) (86a909c), closes #215
  • event: uses Object.prototype.toString.call on objects (#2143) (e036e79)
  • typings: type guard support for last, first, find and filter. (5f2e849)

Features

  • timeout: remove errorToSend argument, always throw TimeoutError (#2172) (98ea3d2)

BREAKING CHANGES

  • timeout: timeout no longer accepts the errorToSend argument

related #2141

5.0.0-rc.4 (2016-11-19)

Bug Fixes

5.0.0-rc.3 (2016-11-15)

Bug Fixes

  • typings: You no longer have to install the type definition for chai (#2112)

Features

  • filter: support type guards without casting (68b7922)
  • find: support type guards without casting (9058bf6)
  • first: support type guards without casting (3aa1988)
  • last: support type guards without casting (07ecd5e)

5.0.0-rc.2 (2016-11-05)

Bug Fixes

  • AjaxObservable: remove needless type param R from AjaxObservable.getJSON() (#2069) (0c3d4a4)
  • bufferCount: will behave as expected when startBufferEvery is less than bufferSize (#2076) (d13dbb4), closes #2062
  • build_docs: fix doc building (#1974) (1bbbe8b)
  • ErrorObservable: Add generic error type for ErrorObservable. (#2071) (9df86ba)
  • first: will now only emit one value in recursive cases (#2100) (a047e7a), closes #2098
  • fromEvent: Throw if event target is invalid (#2107) (147ce3e)
  • IteratorObservable: clarify the return type of IteratorObservable.create() (#2070) (4f0f865)
  • IteratorObservable: Observables from generators will now finalize when subscription ends (22d286a), closes #1938
  • multicast: fix a bug that caused multicast to omit messages after termination (#2021) (44fbc14)
  • Notification: materialize output will now match Rx4 (#2106) (c83bab9), closes #2105
  • Object.assign: stop polyfilling Object assign (#2080) (b5f8ab3)
  • Observable/Ajax: mount properties to origin readystatechange fn (#2025) (76a9abb)
  • operator/do: fix typings (9a40297)
  • reduce/scan: both scan/reduce operators now accepts undefined itself as a valid seed (#2050) (fee7585), closes #2047
  • ReplaySubject: observer now subscribed prior to running subscription function (#2046) (fea08e9), closes #2044
  • sample: source is now subscribed to before the notifier (ffe99e8), closes #2075
  • Symbol.iterator: will not polyfill Symbol iterator unless Symbol exists (#2082) (1138c99)
  • typings: fixed Subject.lift to have the same shape as Observable.lift (b07f597)
  • WebSocketSubject.prototype.multiplex: no longer nulls out socket after first unsubscribe (#2039) (a5e9cfe), closes #2037

Features

  • distinct: remove distinctKey, distinct signature change and perf improvements (#2049) (89612b2), closes #2009
  • groupBy: Adds subjectSelector argument to groupBy (#2023) (f94ceb9)
  • typescript: remove dependency to 3rd party es2015 definition (#2027) (4c31974), closes #2016

BREAKING CHANGES

  • Notification: Notification.prototype.exception is now Notification.prototype.error to match Rx4 semantics
  • Symbol.iterator: RxJS will no longer polyfill Symbol.iterator if Symbol does not exist. This may break code that inadvertently relies on this behavior
  • Object.assign: RxJS will no longer polyfill Object.assign. It does not require Object.assign to function, however, your code may be inadvertently relying on this polyfill.
  • AjaxObservable: Observable.ajax.getJSON() now only supports a single type parameter, getJSON<T>(url: string, headers?: Object): Observable<T>. The extra type parameter it accepted previously was superfluous.
  • distinct: distinctKey has been removed. Use distinct
  • distinct: distinct operator has changed, first argument is an optional keySelector. The custom compare function is no longer supported.

5.0.0-rc.1 (2016-10-11)

Bug Fixes

  • AjaxObservable: Fix for #1921 exposed AjaxObservable unsubscription error calling xhr.abort(). (4d23f87)
  • AnonymousSubject: is now exposed on Rx namespace (0a6f049), closes #2002
  • bufferTime: no errors with take after bufferTime with maxBufferSize (ecec640), closes #1944
  • docs: Fix esdoc for Observable.merge spread argument (b794e9b)
  • Observer: fix Observable#subscribe() signature to suggest correct usable (459d2a2)
  • operator: Fix take to complete when the source is re-entrant. (86615cb)
  • root: find global context (window/self/global) in a more safe way (a098132), closes #1930
  • schedulers: Queue, Asap, and AnimationFrame Schedulers should be Async if delay > 0 (d5c682c)
  • util/toSubscriber: Supplies the Subscriber constructor with emptyObserver as destination if no (8e7e4e3)
  • WebSocketSubject: ensure all internal state properly reset when socket is nulled out (62d242e), closes #1863

Features

  • cache: remove cache operator (1b23ace)
  • ES2015: stop publishing rxjs-es, ES2015 output no longer included in @reactivex/rxjs package under /dist/es6 (6be9968), closes #1671
  • filter: Observable.filter() can take type guard as the predicate function (d62fbf0)
  • find: Observable.find() can take type guard as the predicate function (b952718)
  • first: Observable.first() can take type guard as the predicate function (f99ca49)
  • last: Observable.last() can take type guard as the predicate function (76a8a57)
  • operators: Use lift in the operators that don't currently use lift. (68af9ef)
  • TypeScript: update TypeScript to v2.0 (3478b0b)

BREAKING CHANGES

  • cache: The .cache() operator has been removed, pending further discussion (1b23ace)
  • ES2015: rxjs-es is no longer being published
  • ES2015: @reactivex/rxjs no longer has /dist/es6 output

related #2016 related #1992

  • package.json: TypeScript definitions are now for TS 2.0 and higher

Even if we use getter for class, they are marked with readonly properties in d.ts.

  • operators: Removes MulticastObservable subclass in favor of a MulticastOperator.

5.0.0-beta.12 (2016-09-09)

Bug Fixes

  • ajaxObservable: remove implicit dependency to map operator patch (1744ae9), closes #1874
  • AjaxObservable: return null value from JSON.Parse (#1904) (6ba374e)
  • catch: removed unneeded overload for catch (dd0e586)
  • max: do not return comparer values (f454e93), closes #1892
  • min: do not return comparer values (222fd17), closes #1892
  • operators: export reserved name operators on prototype (34c39dd), closes #1924
  • VirtualTimeScheduler: remove default maxFrame limit (1de86f1), closes #1889
  • WebSocketSubject: pass constructor errors onto observable (49c7d67)

Features

  • operator: Add repeatWhen operator (c288d88)
  • sequenceEqual: adds sequenceEqual operator (3c30293), closes #1882

5.0.0-beta.11 (2016-08-09)

Bug Fixes

  • ajaxObservable: only set default Content-Type header when no body is sent (#1830) (5a895e8)
  • AjaxObservable: drop resultSelector support in ajax method (7a77437), closes #1783
  • AsyncSubject: do not allow change value after complete (801f282), closes #1800
  • BoundNodeCallbackObservable: cast to any to access to private field in source (54f342f)
  • catch: accept selector returns ObservableInput (e55c62d), closes #1857
  • combineLatest: emit unique array instances with the default projection (2e30fd1)
  • Observable.from: standardise arguments (remove map/context) (aa30af2)
  • schedulers: fix asap and animationFrame schedulers to execute across async boundaries. (#182 (548ec2a), closes [(#1820](https://github.com/(/issues/1820) #1814
  • subscribeToResult: update subscription to iterables (5d6339a)
  • WebSocketSubject: prevent early close (#1831) (848a527), closes [(#1831](https://github.com/(/issues/1831)

Features

  • fromEvent: Pass through event listener options (#1845) (8f0dc01)
  • PairsObservable: add PairsObservable creation method (26bafff), closes #1804

BREAKING CHANGES

  • Observable.from: - Observable.from no longer supports the optional map function and associated context argument. This change has been reflected in the related constructors and their properties have been standardised.
  • AjaxObservable: ajax.*() method no longer support resultSelector, encourage to use map instead

5.0.0-beta.10 (2016-07-06)

Bug Fixes

5.0.0-beta.9 (2016-06-14)

Bug Fixes

  • cache: get correct caching behavior (#1765) (cb0b806), closes #1628
  • ConnectableObservable: fix ConnectableObservable connection handling issue (41ce80c)
  • typings: make HotObservavle._subscribe protected (1c3d6ea)
  • WebSocketSubject: WebSocketSubject will now chain operators properly (#1752) (bf54db4), closes #1745
  • window: don't track internal window subjects as subscriptions. (f3357b9)

Performance Improvements

  • fromEventPattern: ~3x improvement in speed (3dc1c00)

5.0.0-beta.8 (2016-05-22)

Bug Fixes

  • AnonymousSubject: allow anonymous observers as destination (0e2c28b)
  • combineLatest: rxjs/observable/combineLatest is now properly exported (21fab73), closes #1722
  • ConnectableObservable: fix race conditions in ConnectableObservable and refCount. (d1412bc)
  • Rx: remove kitchenSink and DOM, let Rx export all (f5090b4), closes #1650
  • ScalarObservable: set _isScalar to false when initialized with a scheduler (5037b3a)
  • Subject: correct Subject behaviors to be more like Rx4 (ba9ef2b)
  • subscriptions: fixes bug that tracked subscriber subscriptions twice. (29ff794)

Features

  • bufferTime: add maxBufferSize optional argument (cf45540), closes #1295
  • multicast: subjectfactory allows selectors (32fa3a4)
  • onErrorResumeNext: add onErrorResumeNext operator (51e022b), closes #1665
  • publish: support optional selectors (0e5991d), closes #1629

Performance Improvements

  • combineLatest: avoid splice and indexOf (33599cd)

BREAKING CHANGES

  • Subject: Subjects no longer duck-type as Subscriptions
  • Subject: Subjects will no longer throw when re-subscribed to if they are not unsubscribed
  • Subject: Subjects no longer automatically unsubscribe when completed or errored BREAKING CAHNGE: Minor scheduling changes to groupBy to ensure proper emission ordering
  • Rx: Rx.kitchenSink and Rx.DOM are removed, Rx export everything.

5.0.0-beta.7 (2016-04-27)

Bug Fixes

  • race: handle observables completes immediately (abac3d1), closes #1615
  • scan: accumulator passes current index (a3ec896), closes #1614

Features

  • Observable.generate: add generate static creation method (c03434c)

5.0.0-beta.6 (2016-04-12)

Bug Fixes

  • AjaxObservable: support json responseType on IE (bba13d8), closes #1381
  • bufferToggle: accepts closing selector returns promise (b1c575c)
  • bufferToggle: accepts promise as openings (3d22c7a)
  • bufferToggle: handle closingSelector completes immediately (02239fb)
  • typings: explictly export typings for arguments to functions that destructure configuration objects (ef305af)

Features

  • UnsubscriptionError: add messages from inner errors to output message (dd01279), closes #1590

Performance Improvements

  • DeferSubscriber: split up 'tryDefer()' into a method to call a factory function. (566f46b)

5.0.0-beta.5 (2016-04-05)

Bug Fixes

  • take: make 'take' unsubscribe when it reaches the total (9858aa3)

BREAKING CHANGES

  • Operator: Operator.prototype.call has been refactored to include both the destination Subscriber, and the source Observable the Operator is now responsible for describing it's own subscription process. (26423f4)

5.0.0-beta.4 (2016-03-29)

Bug Fixes

  • AjaxObservable: enhance compatibility (0ac7e1e)
  • Observable.if: accept promise as source (147166e)
  • mergeMap: allow concurrent to be set as the second argument for mergeMap and mergeMapTo (c003468)
  • observable: ensure the subscriber chain is complete before calling this._subscribe (1631224)
  • Symbol: fixed issue where $$observable is not defined (e66b2d8)
  • Observable.using: accepts factory returns promise (f8d7d1b)
  • windowToggle: handle closingSelector completes immediately (c755587), closes #1487

Features

  • ajax: add FormData support in AjaxObservable and add percent encoding for parameters (1f6119c)
  • Subscription: add() now returns a Subscription reference (a3f4552)
  • timestamp: add timestamp operator (80b1646), closes #1515

Performance Improvements

  • forkJoin: improve forkJoin perf slightly by removing unnecessary context tracking (280b985)

BREAKING CHANGES

  • Observable: Observable.fromArray was removed since it's deprecated on RxJS 4. You should use Observable.from instead.

5.0.0-beta.3 (2016-03-21)

Bug Fixes

  • AjaxObservable: update type definition for AjaxObservable (3f5c269), closes #1382
  • deferObservable: accepts factory returns promise (0cb44e1)
  • do: fix do operator to invoke observer message handlers in the right context. (67a2f25)
  • exhaustMap: remove innersubscription when it completes (7ca0859)
  • forEach: ensure that teardown logic is called when nextHandler throws (c50f528), closes #1411
  • forkJoin: accepts observables emitting null or undefined (6279d6b), closes #1362
  • forkJoin: dispose the inner subscriptions when the outer subscription is disposed (c7bf30c)
  • FutureAction: add support for periodic scheduling with setInterval instead of setTimeout (c4f5408)
  • Observable: introduce Subscribable interface that will be used instead of Observable in inpu (2256e7b)
  • Observable.prototype.forEach: removed thisArg to match es-observable spec (d5f1bcd)
  • package.json: install typings only after packages are installed (a48d796)
  • Schedulers: ensure schedulers can be reused after error in execution (202b79a)
  • takeLast: fix takeLast behavior to emit correct order (73eb658), closes #1407
  • typings: set map function parameter for Observable.from as optional (efa4dc3)

Features

  • AsyncScheduler: add AsyncScheduler implementation (4486c1f)
  • if: add static Observable.if creation operator. (f7ff7ec)
  • let: adds the let operator to Rx.KitchenSink (dca6504)
  • using: add static Observable.using creation operator. (6c76593)

BREAKING CHANGES

  • Observable.prototype.forEach: thisArg removed to match es-observable spec

5.0.0-beta.2 (2016-02-10)

Bug Fixes

  • ajax: fixes error in Chrome accessing responseText when responseType isn't text. (f3e2f73)
  • benchpress: fix issues with benchmarks (16894bb)
  • every: remove eager predicate calls (74c2c44)
  • forkJoin: fix forkJoin to complete if sources Array is empty. (412b13b)
  • groupBy: does not emit on unsubscribed group (6d08705)
  • groupBy: fix groupBy to use lift(), supports composability (815cfae), closes #1085
  • merge/concat: passed scalar observables will now complete properly (c01b92f), closes #1150
  • MergeMapSubscriber: clarify type definitions for MergeMapSubscriber's members (4ee5f02)
  • Observable.forEach: errors thrown in nextHandler reject returned promise (c5ead88), closes #1184
  • Observer: fix typing to allow observation via partial observables with PartialObservable<T (7b6da90)
  • Subject: align parameter order to match with RxJS4 (44dfa07), closes #1285
  • Subject: throw ObjectUnsubscribedError when unsubscribed (29b630b), closes #859
  • Subscriber: adds unsubscription when errors are thrown from user-land handlers. (dc67d21)
  • Subscription: fix leaks caused by unsubscribe functions that throw (9e88c2e)
  • subscriptions: unsubscribe correctly when a Subscriber throws during synchronous dispatch. (b1698fe)
  • typings: don't expose PromiseConstructor dependency (f59225b), closes #1270
  • typings: remove R from Operator.call, update operators accordingly (f27902d)
  • typings: remove redundant generics from call<T, R> and lift<T, R> (603c9eb)
  • windowTime: does not emit on unsubscribed window (595f4ef)

Features

  • cache: add cache operator (4308a04)
  • delayWhen: add delayWhen operator (17122f9)
  • distinct: add distinct operator (94a034d)
  • distinctKey: add distinctKey operator (fe4d57f)
  • from: allow Observable.from to handle array-like objects (7245005)
  • MapPolyfill: implement clear interface (e3fbd05)
  • operator: adds inspect and inspectTime operators (54f957b)
  • OuterSubscriber: notifyNext passes innersubscriber when next emits (1df8928), closes #1250
  • Subject: implement asObservable (aca3dd0), closes #1108
  • takeLast: adds takeLast operator. (3583cd3)

Performance Improvements

  • catch: remove tryCatch/errorObject for custom tryCatching, 1.3M -> 1.5M ops/sec (35caf74)
  • combineLatest: remove tryCatch/errorObject, 156k -> 221k ops/sec (1c7d639)
  • count: remove tryCatch/errorObject for custom tryCatching, 1.84M -> 1.97M ops/sec (869718d)
  • debounce: remove tryCatch/errorObject for custom tryCatching (90bf3f1)
  • distinct: increase perf from 60% of Rx4 to 1000% Rx4 (d026c41)
  • do: remove tryCatch/errorObject use, 104k -> 263k ops/sec improvement (ccba39d)
  • every: remove tryCatch/errorObject (~1.8x improvement) (14afeb6)
  • exhaustMap: remove tryCatch/errorObject (~10% improvement) (a55f459)
  • filter: remove tryCatch/errorObject for 2x perf improvement (086c4bf)
  • find: remove tryCatch/errorObject (~2x improvement) (aa35b2a)
  • first: remove tryCatch/errorObject for custom tryCatching, 970k ops -> 1.27M ops/sec (d8c835a)
  • groupBy: remove tryCatch/errorObject for custom tryCatching, 38% faster. (40c43f7)
  • last: remove tryCatch/errorObject for custom tryCatching, 960k -> 1.38M ops/sec (243ace3)
  • map: 2x increase from removing tryCatch/errorObject (231f729)
  • mergeMap: extra 1x factor gains from custom tryCatch member function (c4ce2fb)
  • mergeMapTo: remove tryCatch/errorObject (~2x improvement) (42bcced)
  • reduce: remove tryCatch/errorObject, optimize calls, 2-3x perf improvement (6186d46)
  • scan: remove tryCatch/errorObject for custom tryCatcher 1.75x improvement (338135d)
  • single: remove tryCatch/errorObject (~2.5x improvement) (2515cfb)
  • skipWhile: remove tryCatch/errorObject (~1.6x improvement) (cf002db)
  • Subscriber: double performance adding tryOrUnsub to Subscriber (4e75466)
  • switchMap: remove tryCatch/errorObject ~20% improvement (ec0199f)
  • switchMapTo: remove tryCatch/errorObject (~2x improvement) (c8cf72a)
  • takeWhile: remove tryCatch/errorObject (~6x improvement) (ef6c3c3)
  • withLatestFrom: remove tryCatch/errorObject, 92k -> 107k (16% improvement) (e4ccb44)
  • zip: extra 1x-2x factor gains from custom tryCatch member function (a1b0e52)

BREAKING CHANGES

  • Subject: Subject.create arguments have been swapped to match Rx 4 signature. Subject.create(observable, observer) is now Subject.create(observer, observable)
  • Observable patching: Patch files for static observable methods such as of and from can now be found in rxjs/add/observable/of, rxjs/add/observable/from, etc.
  • Observable modules: Observable modules for subclassed Observables like PromiseObservable, ArrayObservable are now in appropriately named files like rxjs/observable/PromiseObservable and rxjs/observable/ArrayObservable as opposed to rxjs/observable/fromPromise and rxjs/observable/fromArray, since they're not patching, they simply house the Observable implementations.

5.0.0-beta.1 (2016-01-13)

Bug Fixes

  • ajax: ensure post sending values (7aae0a3)
  • ajax: ensure that headers are set properly (1100bdd)
  • ajax: ensure XHR props are set after open (4a6a579)
  • ajax: ensure XHR send is being called (c569e3e)
  • ajax: remove unnecessary onAbort handling (ed8240e)
  • ajax: response properly based off responseType (b2a27a2)
  • ajax: should no longer succeed on 300 status (4d4fa32)
  • animationFrame: req/cancel animationFrame has to be called within the context of root. (30a11ee)
  • debounceTime: align value emit behavior as same as RxJS4 (5ee11e0), closes #1081
  • distinctUntilChanged: implement optional keySelector (f6a897c)
  • fromEvent: added spread operator for emitters that pass multiple arguments (3f8eabb)
  • fromObservable: expand compatibility for iterating string source (8f7924f), closes #1147
  • Immediate: update setImmediate compatibility on IE (39e6c0e), closes #1163
  • inspect: remove inspect and inspectTime operators (17341a4)
  • Readme: update link to bundle on npmcdn (44a8ca7)
  • ReplaySubject: Fix case-sensitive import. (de31f32)
  • ScalarObservable: fix issue where scalar map fired twice (c18c42e), closes #1142 #1140
  • scheduling: Fixes bugs in scheduled actions. (e050f01)
  • Subscriber: errors in nextHandler no longer propagate to errorHandler (f42eed2), closes #1135
  • WebSocketSubject: ensure error codes passed to WebSocket close method (3b1655e)
  • WebSocketSubject: ensure WebSocketSubject can be resubscribed (861a0c1)
  • WebSocketSubject: resultSelector and protocols specifications work properly (580f69a)

Features

  • ajax: add resultSelector and improve perf (6df755f)
  • ajax: adds ajax methods from rx-dom. (2ca4236)
  • bindNodeCallback: add Observable.bindNodeCallback (497bb0d), closes #736
  • Observable: add let to allow fluent style query building (5a2014c)
  • Observable: add pairwise operator (1432e59)
  • Operator: Expose the Operator interface to library consumers (29aa3af)
  • pluck: add pluck operator (8026906), closes #1134
  • race: add race operator (ee3b593)
  • scheduler: adds animationFrame scheduler. (e637b78)
  • WebSocketSubject: add basic WebSocketSubject implementation (58cd806)
  • WebSocketSubject.multiplex: add multiplex operator to WebSocketSubject (904d617)

BREAKING CHANGES

  • inspect: inspect and inspectTime were removed. Use withLatestFrom instead.
  • Subscriber/Observable: errors thrown in nextHandlers by consumer code will no longer propagate to the errorHandler.

5.0.0-beta.0 (2015-12-15)

Bug Fixes

  • micro-perf: rename immediate to queue scheduler (fe56b28), closes #1040
  • micro-perf: use the correnct scheduler on current-thread tests (3dff5eb)
  • operators: emit declarations for patch modules (676f82d)
  • test: make explicit unsubscription for observable (7f67b09)
  • test: make explicit unsubscription for observable (65e65e2)
  • window: fix window() to dispose window Subjects (5168f73)
  • windowCount: fix windowCount to dispose window Subjects (f29ee29)
  • windowTime: fix windowTime to dispose window Subjects (b73e260)
  • windowToggle: fix windowToggle to dispose window Subjects (15ff3f7)
  • windowWhen: fix windowWhen to dispose window Subjects (91c1941)

Features

  • inspect: added inspect operator (f9944ae)
  • inspectTime: add inspectTime operator (6835dcd)
  • sample: readd sample operator (e93bffc)
  • sampleTime: reimplement sampleTime with RxJS 4 behavior (6b77e69)
  • TestScheduler: add createTime() parser to return number (cb8cf6b)

BREAKING CHANGES

  • sampleTime: sampleTime now has the same behavior sample(number, scheduler) did in RxJS 4
  • sample: sample behavior returned to RxJS 4 behavior
  • inspectTime: sampleTime is now inspectTime
  • inspect: RxJS 5 sample behavior is now inspect
  • extended operators: All extended operators are now under the same operator directory as all others. This means that import "rxjs/add/operator/extended/min" is now import "rxjs/add/operator/min"

5.0.0-alpha.14 (2015-12-09)

Bug Fixes

  • every: handle thisArg for scalar and array observables (eae4b00)
  • SymbolShim: ensure for function even if Symbol already exists (e942776), closes #999
  • SymbolShim: Symbol polyfill is a function (1f57157), closes #988
  • timeoutWith: fix to avoid unnecessary inner subscription (6e63752)

Features

  • count: remove thisArg (878a1fd)
  • distinctUntilChanged: remove thisArg (bfc52d6)
  • exhaust: rename switchFirst operators to exhaust (9b565c9), closes #915
  • finally: remove thisArg (d4b02fc)
  • forEach: add thisArg (14ffce6), closes #878
  • single: remove thisArg (43af805)

BREAKING CHANGES

  • exhaust: switchFirst is now exhaust
  • exhaust: switchFirstMap is now exhaustMap
  • forEach: Observable.prototype.forEach argument order changed to accommodate thisArg. Optional PromiseCtor argument moved to third arg from second

5.0.0-alpha.13 (2015-12-08)

Bug Fixes

  • Observable: fix circular dependency issue. (b7672f4)
  • bufferToggle: fix unsubscriptions of closing Observable (439b641)
  • expand: accept scheduler parameter (79e9084), closes #841
  • publish: make script generate correct package names (10563d3)
  • repeat: preserve Subscriber chain in repeat() (d9a7328)
  • retry: preserve Subscriber chain in retry() (b429dac)
  • retryWhen: preserve Subscriber chain in retryWhen() (c9cb958)

Features

  • AsapScheduler: rename NextTickScheduler to AsapScheduler (3255fb3), closes #838
  • BehaviorSubject: add getValue method to access value (33b387b), closes #758
  • BehaviorSubject: now throws when getValue is called after unsubscription (1ddf116)
  • ObjectUnsubscribedError: add ObjectUnsubscribed error class (39836af)
  • Observable: subscribe accepts objects with rxSubscriber symbol (b7672f4)
  • QueueScheduler: rename ImmediateScheduler to QueueScheduler (66eb537)
  • Rx.Symbol.rxSubscriber: add rxSubscriber symbol (d4f1670)
  • Subject: add rxSubscriber symbol (d2e4257)
  • Subscriber: add rxSubscriber symbol (7bda360)
  • switchFirstMap: rename switchMapFirst to switchFirstMap (eddd4dc)

BREAKING CHANGES

  • AsapScheduler: Rx.Scheduler.nextTick (Rx 4's "default" scheduler) is now Rx.Scheduler.asap
  • QueueScheduler: Rx.Scheduler.immediate (Rx 4's "currentThread" scheduler) is now Rx.Scheduler.queue related #838
  • switchFirstMap: switchMapFirst is now switchFirstMap

5.0.0-alpha.12 (2015-12-04)

Bug Fixes

  • AsyncSubject: emit value when it's subscribed after complete (ed0eaf6)
  • bindCallback: only call function once even while scheduled (8637d47), closes #881
  • bufferToggle: fix disposal of subscriptions when errors occur (a20325c)
  • catch: fix catch to dispose old subscriptions (280f7ed), closes #763
  • catch: fix catch() to preserve Subscriber chain (e1447ac)
  • concat: accept scheduler parameter (8859702)
  • ConnectableObservable: fix ConnectableObservable connectability and refCounting (aef9578), closes #678
  • debounce: Fix debounce to unsubscribe duration Observables (dea7847)
  • expand: fix expand's concurrency behavior (01f86e5)
  • expand: terminate recursive call when destination completes (3b8cf94)
  • Observable: Subjects no longer wrapped in Subscriber (5cb0f2b), closes #825 #748
  • Observer: anonymous observers now allow missing handlers (a11c763), closes #723
  • operators: Remove shareReplay and shareBehavior (536a6a6), closes #710
  • publish: copy readme and license, remove scripts (439a2f3), closes #845
  • throttleTime: fix and rename throttleTime operator (3b0c1f3)
  • TimerObservable: accepts absolute date for dueTime (e284fb8), closes #648

Features

  • AsyncSubject: add AsyncSubject (34c05fe)
  • bindCallback: remove thisArg (feea9a1)
  • bindCallback: rename fromCallback to bindCallback (305d66d), closes #876
  • callback: Add Observable.fromCallback (9f751e7)
  • combineLatest: accept array of observable as parameter (2edd92c), closes #594
  • forkJoin: accept array of observable as parameter (d45f672)
  • mergeScan: support concurrency parameter for mergeScan (fe0eb37), closes #868
  • usage: add auto-patching operators (1ab3508), closes #860
  • skipWhile: add skipWhile operator (a2244e0)
  • switchFirst: add switchFirst and switchMapFirst (71e3dd1)
  • publishLast: add publishLast operator (9bef228), closes #883
  • takeWhile: add takeWhile operator (48e53ea), closes #695
  • takeWhile: remove thisArg (b5219a4)
  • throttle: add throttle operator with durationSelector (c3bf3e7), closes #496

Performance Improvements

  • ReplaySubject: fix memory leak of growing buffer (0a73b4d), closes #578

5.0.0-alpha.11 (2015-12-01)

Bug Fixes

  • catch: fix catch to dispose old subscriptions (280f7ed), closes #763
  • concat: accept scheduler parameter (8859702)
  • ConnectableObservable: fix ConnectableObservable connectability and refCounting (aef9578), closes #678
  • debounce: Fix debounce to unsubscribe duration Observables (dea7847)
  • expand: fix expand's concurrency behavior (01f86e5)
  • expand: terminate recursive call when destination completes (3b8cf94)
  • Observer: anonymous observers now allow missing handlers (a11c763), closes #723
  • operators: Remove shareReplay and shareBehavior (536a6a6), closes #710
  • test: make explicit unsubscription for observable (505f5b7)
  • throttleTime: fix and rename throttleTime operator (3b0c1f3)
  • TimerObservable: accepts absolute date for dueTime (e284fb8), closes #648

Features

  • callback: Add Observable.fromCallback (9f751e7)
  • combineLatest: accept array of observable as parameter (2edd92c), closes #594
  • forkJoin: accept array of observable as parameter (d45f672)
  • operator: add skipWhile operator (a2244e0)
  • operator: add switchFirst and switchMapFirst (71e3dd1)
  • takeWhile: add takeWhile operator (48e53ea), closes #695
  • throttle: add throttle operator with durationSelector (c3bf3e7), closes #496

Performance Improvements

  • ReplaySubject: fix memory leak of growing buffer (0a73b4d), closes #578

5.0.0-alpha.10 (2015-11-10)

Bug Fixes

  • Immediate: set immediate should no longer throw in Chrome (a3de7d9), closes #690

5.0.0-alpha.9 (2015-11-10)

Bug Fixes

  • util: incorrect Symbol.iterator for es6-shim (15bf32c)

Features

  • forkJoin: accept promise, resultselector as parameter of forkJoin (190f349), closes #507

5.0.0-alpha.8 (2015-11-06)

Bug Fixes

  • concat: handle a given scheduler correctly (8745216)
  • package.json: loosen the engines/npm semver range to prevent false warnings (df791c6)
  • skipUntil: unsubscribe source when it completes (8a4162b), closes #577
  • take: deal with total <= 0 and add tests (c5cc06f)
  • windowWhen: fix windowWhen with regard to unsubscriptions (8174947)

Features

  • mergeScan: add new mergeScan operator. (0ebb5bd)
  • multicast: support both Subject and subjectFactory arguments (f779027)

BREAKING CHANGES

  • publish: reverted to RxJS 4 behavior
  • publishBehavior: reverted to RxJS 4 behavior
  • publishReplay: reverted to RxJS 4 behavior
  • shareBehavior: removed
  • shareReplay: removed

5.0.0-alpha.7 (2015-10-27)

Bug Fixes

  • NextTickAction: fix unsubscription behavior (3d8264c), closes #582
  • buffer: cleanup notifier subscription when unsubscribed (1b30aa9)
  • delay: accepts absolute time delay (b109100)
  • mergeMapTo: mergeMapTo result should complete (6f9859e)
  • operator: update type definitions for union types (9d90c75), closes #581
  • repeat: fix inner subscription semantics for repeat (f67a596), closes #554
  • switchMapTo: reimplement switchMapTo to pass tests (d4789cd)
  • takeUntil: unsubscribe notifier when it completes (9415196)

Features

  • operator: add max operator (7fda036)
  • operator: add min operator (79cb6cf)
  • shareBehavior: add shareBehavior and its tests (97ff1ec)

5.0.0-alpha.6 (2015-10-17)

Bug Fixes

  • retryWhen: fix internal unsubscriptions (5aff5e8)
  • scan: scan now behaves like RxJS 4 scan (27f9c09)

5.0.0-alpha.5 (2015-10-16)

Bug Fixes

  • bufferToggle: fix bugs in order to pass tests (949fa31)
  • mergeAll: fix mergeAll micro performance tests to use mapTo instead of map. (616e86e)
  • package: correct typings path (a501b06)
  • repeat: add additional resubscription behavior (4f9f33b), closes #516
  • retry: fix internal unsubscriptions for retry (cc92f45), closes #546
  • windowToggle: fix window closing and unsubscription semantics (0cb21e6)

5.0.0-alpha.4 (2015-10-15)

Bug Fixes

  • Subject: fix missing unsubscribe call (9dd27d6)
  • Subscriber: avoid implicit any (08faaa9)
  • bufferWhen: onComplete of closings determine buffers (5d28a38)
  • fromEvent: make selector argument optional in fromEvent static method (71d90b4)
  • skipUntil: update skipUntil behavior with error, completion (6f0d98f), closes #518
  • windowCount: fix windowCount window opening times (908ae56), closes #273

Features

  • operator: add debounce operator (a1e652f), closes #493
  • operator: add debounceTime operator (dd2ba40)

Performance Improvements

  • ScalarObservable: add fast-path for mapping scalar observables (7b0d3dc)
  • count: fast-path for counting over scalars (c35a120)
  • filter: add fast-path for filtering scalar observables (e2e8954)
  • reduce: add fast-path for reducing over scalar observables (4c65136)
  • scan: fast-path for scanning scalars (0201b92)
  • skip: fast-path for skip over scalar observable (9b49936)
  • take: add fast-path for take over scalars (33053b1)

5.0.0-alpha.3 (2015-10-13)

Bug Fixes

  • Observable: fix type signature of some static operators (e5364de)
  • Subject.create: ensure operator property not required for Observable subscription (2259de2), closes #483
  • TestScheduler: stop sorting actual results (51db0b8), closes #422
  • benchpress: update benchpress dependencies and config (8513eaa), closes #348
  • buffer: change behavior of buffer to more closely match RxJS 4 (b66592d)
  • combineLatest: fix type signature (a3e6deb)
  • defer: fix type signature (11327b9)
  • empty: fix type signature (893cb7e)
  • fromPromise: fix type signature (17415fa)
  • groupBy: durationSelector cannot keep source alive (57e4207)
  • groupBy: fix bugs related to group resets (23a7574)
  • groupBy: fix bugs with groupBy (86992c6)
  • interval: fix signature type (9c238c0)
  • operator: startWith operator accepts scheduler, multiple values (d1d339a)
  • operators: reorder signature of resultSelectors (fc1724d)
  • range: fix type signature (9237d0b)
  • timeout: fix absolute timeout behavior (8ec06cf)
  • timeout: update behavior of timeout, timeoutWith (16bd691)
  • timer: fix type signature (fffb96c)
  • window: handle closingNotifier errors/completes (42beff1)

Features

  • TestScheduler: support unsubscription marbles (ffb0bb9)
  • count: add predicate support in count() (42d1add), closes #425
  • dematerialize: add dematerialize operator (0a8b074), closes #475
  • do: do will now handle an observer as an argument (c1a4994), closes #476
  • first: add resultSelector (3c20fcc), closes #417
  • last: add resultSelector argument (5a4896c), closes #418
  • operator: add every operator (d11f32e)
  • operator: add timeInterval operator (6cc0615)
  • share: add the share operator (c36f2be), closes #439
  • shareReplay: add the shareReplay() operator (65c84ea)

Performance Improvements

  • ReplaySubject: remove unnecessary computation (488ac2e)

BREAKING CHANGES

  • operators with resultSelectors (mergeMap, concatMap, switchMap, etc): The function signature of resultSelectors used to be (innerValue, outerValue, innerIndex, outerIndex) but this commits changes it to be (outerValue, innerValue, outerIndex, innerIndex), to match signatures in RxJS 4.

5.0.0-alpha.2 (2015-09-30)

Bug Fixes

  • concat: let observable concat instead of merge (c17e832)

Features

  • operator: add find, findIndex operator (7c6cc9d)
  • operator: add first operator (274c233)
  • operator: add ignoreElements operator (fe1a952)
  • zip: zip now supports never-ending iterables (a5684ba), closes #397

5.0.0-alpha.1 (2015-09-23)

Bug Fixes

  • Promises: escape promise error trap (c69088a)
  • TestScheduler: ensure TestScheduler subscribes to expectations before hot subjects (b9b2ba5)
  • TestScheduler: properly schedule actions added dynamically (069ede4)
  • buffer: do not emit empty buffer when completes (252fccb)
  • bufferTime: inner intervals will now clean up properly (4ef41b0)
  • expand: Fix expand to stay open until the source Observable completes. (20ef785)
  • expand: fix expand operator to match Rx3 (67f9623)
  • last: emit value matches with predicate instead of result of predicate (0f635ee)
  • merge: fix issues with async in merge (7a15304)
  • mergeAll: merge all will properly handle async observables (43b63cc)
  • package: specify supported npm version (f72e622)
  • switchAll: switch all will properly handle async observables (c2e2d29)
  • switchAll/switchLatest: inner subscriptions should now properly unsub (38a45f8), closes #302

Features

  • combineLatest: supports promises, iterables, lowercase-o observables and Observables (ce76e4e)
  • config: add global configuration of Promise capability (e7eb5d7), closes #115
  • expand: now handles promises, iterables and lowercase-o observables (c5239e9)
  • mergeAll: now supports promises, iterables and lowercase-o observables (4c16aa6)
  • operator: add elementAt operator (cd562c4)
  • operator: add isEmpty operator (80f72c5)
  • operator: add last operator (d841b11), closes #304 #306
  • operator: add single operator (49484a2)
  • switch: add promise, iterable and array support (24fdd34)
  • withLatestFrom: default array output, handle other types (cb393dc)
  • zip: supports promises, iterables and lowercase-o observables (d332a0e)

0.0.0-prealpha.3 (2015-09-11)

Bug Fixes

  • root: use self as the root object when available (0428a85)

0.0.0-prealpha.2 (2015-09-11)

Bug Fixes

  • bufferCount: set default value for skip argument, do not emit empty buffer at the end (2c1a9dc)
  • windowCount: set default value for skip argument, do not emit empty buffer at the end (a513dbb)

Features

  • Observable: add static create method (e0d27ba), closes #255
  • TestScheduler: add TestScheduler (b23daf1), closes #270
  • VirtualTimeScheduler: add VirtualTimeScheduler (96f9386), closes #269
  • operator: add sample and sampleTime (9e62789), closes #178

0.0.0-prealpha.1 (2015-09-02)

Bug Fixes

  • combineLatest: check for limits higher than total observable count (81e5dfb)
  • rx: add hack to export global until better global build exists (1a543b0)
  • subscription-ref: add setter for isDisposed (6fe5427)
  • take: complete on limit reached (801a711)

Features

  • benchpress: add benchpress config and flatmap spec (0441dea)
  • catch: add catch operator, related to #141, closes #130 (94b4c01), closes #130
  • from: let from handle any "observablesque" (526d4c3), closes #156 #236
  • index: add index module which requires commonjs build (379d2d1), closes #117
  • observable: add Observable.all (forkJoin) (44a4ee1)
  • operator: Add count operator. (30dd894)
  • operator: Add distinctUntilChanged and distinctUntilKeyChanged (f9ba4da)
  • operator: Add do operator. (7d9b52b)
  • operator: Add expand operator. (47b178b)
  • operator: Add minimal delay operator. (7851885)
  • operator: add buffer operators: buffer, bufferWhen, bufferTime, bufferCount, and bufferTog (9f8347f), closes #207
  • operator: add debounce (f03adaf), closes #193
  • operator: add defaultIfEmpty (c80688b)
  • operator: add finally (526e4c9)
  • operator: add fromEventPattern creator function (1095d4c)
  • operator: add groupBy (1e13aea), closes #165
  • operator: add materialize. closes #132 (6d9f6ae), closes #132
  • operator: add publishBehavior operator and spec (249ab8d)
  • operator: add publishReplay operator and spec (a0c47d6)
  • operator: add retry (4451db5)
  • operator: add retryWhen operator. closes #129 (65eb50e), closes #129
  • operator: add skipUntil (ef2620e), closes #180
  • operator: add throttle (1d735b9), closes #191
  • operator: add timeout and timeoutWith (bb440ad), closes #244
  • operator: add toPromise operator. closes #159 (361a53b), closes #159
  • operator: add window operators: window, windowWhen, windowTime, windowCount, windowToggle (9f5d510), closes #195
  • operator: add withLatestFrom (322218a), closes #209
  • operator: implement startWith(). (1f36d99)