rxjs-rails 2.4.1 → 2.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rxjs/rails/version.rb +1 -1
  3. data/vendor/assets/javascripts/rx.aggregates.js +15 -19
  4. data/vendor/assets/javascripts/rx.aggregates.map +1 -1
  5. data/vendor/assets/javascripts/rx.aggregates.min.js +1 -1
  6. data/vendor/assets/javascripts/rx.all.compat.js +1014 -566
  7. data/vendor/assets/javascripts/rx.all.compat.map +1 -1
  8. data/vendor/assets/javascripts/rx.all.compat.min.js +4 -4
  9. data/vendor/assets/javascripts/rx.all.js +1009 -563
  10. data/vendor/assets/javascripts/rx.all.map +1 -1
  11. data/vendor/assets/javascripts/rx.all.min.js +4 -4
  12. data/vendor/assets/javascripts/rx.async.compat.js +17 -15
  13. data/vendor/assets/javascripts/rx.async.compat.map +1 -1
  14. data/vendor/assets/javascripts/rx.async.compat.min.js +1 -1
  15. data/vendor/assets/javascripts/rx.async.js +17 -15
  16. data/vendor/assets/javascripts/rx.async.map +1 -1
  17. data/vendor/assets/javascripts/rx.async.min.js +1 -1
  18. data/vendor/assets/javascripts/rx.backpressure.js +53 -43
  19. data/vendor/assets/javascripts/rx.backpressure.map +1 -1
  20. data/vendor/assets/javascripts/rx.backpressure.min.js +1 -1
  21. data/vendor/assets/javascripts/rx.binding.js +31 -12
  22. data/vendor/assets/javascripts/rx.binding.map +1 -1
  23. data/vendor/assets/javascripts/rx.binding.min.js +1 -1
  24. data/vendor/assets/javascripts/rx.coincidence.js +3 -2
  25. data/vendor/assets/javascripts/rx.coincidence.map +1 -1
  26. data/vendor/assets/javascripts/rx.coincidence.min.js +1 -1
  27. data/vendor/assets/javascripts/rx.compat.js +821 -444
  28. data/vendor/assets/javascripts/rx.compat.map +1 -1
  29. data/vendor/assets/javascripts/rx.compat.min.js +2 -2
  30. data/vendor/assets/javascripts/rx.experimental.js +2 -9
  31. data/vendor/assets/javascripts/rx.experimental.map +1 -1
  32. data/vendor/assets/javascripts/rx.experimental.min.js +1 -1
  33. data/vendor/assets/javascripts/rx.joinpatterns.js +14 -22
  34. data/vendor/assets/javascripts/rx.joinpatterns.map +1 -1
  35. data/vendor/assets/javascripts/rx.joinpatterns.min.js +1 -1
  36. data/vendor/assets/javascripts/rx.js +817 -442
  37. data/vendor/assets/javascripts/rx.lite.compat.js +897 -443
  38. data/vendor/assets/javascripts/rx.lite.compat.map +1 -1
  39. data/vendor/assets/javascripts/rx.lite.compat.min.js +3 -2
  40. data/vendor/assets/javascripts/rx.lite.extras.compat.js +621 -0
  41. data/vendor/assets/javascripts/rx.lite.extras.compat.map +1 -0
  42. data/vendor/assets/javascripts/rx.lite.extras.compat.min.js +3 -0
  43. data/vendor/assets/javascripts/rx.lite.extras.js +53 -76
  44. data/vendor/assets/javascripts/rx.lite.extras.map +1 -1
  45. data/vendor/assets/javascripts/rx.lite.extras.min.js +1 -1
  46. data/vendor/assets/javascripts/rx.lite.js +898 -444
  47. data/vendor/assets/javascripts/rx.lite.map +1 -1
  48. data/vendor/assets/javascripts/rx.lite.min.js +3 -2
  49. data/vendor/assets/javascripts/rx.map +1 -1
  50. data/vendor/assets/javascripts/rx.min.js +2 -2
  51. data/vendor/assets/javascripts/rx.testing.js +10 -11
  52. data/vendor/assets/javascripts/rx.testing.map +1 -1
  53. data/vendor/assets/javascripts/rx.testing.min.js +1 -1
  54. data/vendor/assets/javascripts/rx.time.js +80 -40
  55. data/vendor/assets/javascripts/rx.time.map +1 -1
  56. data/vendor/assets/javascripts/rx.time.min.js +1 -1
  57. data/vendor/assets/javascripts/rx.virtualtime.js +6 -13
  58. data/vendor/assets/javascripts/rx.virtualtime.map +1 -1
  59. data/vendor/assets/javascripts/rx.virtualtime.min.js +1 -1
  60. metadata +6 -3
@@ -1 +1 @@
1
- {"version":3,"file":"rx.binding.min.js","sources":["rx.binding.js"],"names":["factory","objectTypes","boolean","function","object","number","string","undefined","root","window","this","freeExports","exports","nodeType","freeModule","module","freeGlobal","global","define","amd","Rx","require","call","exp","checkDisposed","self","isDisposed","Error","objectDisposed","cloneArray","arr","a","i","len","length","push","Observable","observableProto","prototype","AnonymousObservable","Subject","AsyncSubject","Observer","ScheduledObserver","internals","disposableCreate","Disposable","create","disposableEmpty","empty","CompositeDisposable","currentThreadScheduler","Scheduler","currentThread","isFunction","helpers","inherits","addProperties","multicast","subjectOrSubjectSelector","selector","source","observer","connectable","subscribe","connect","ConnectableObservable","publish","share","refCount","publishLast","publishValue","initialValueOrSelector","initialValue","arguments","BehaviorSubject","shareValue","replay","bufferSize","scheduler","ReplaySubject","shareReplay","InnerSubscription","subject","dispose","idx","observers","indexOf","splice","__super__","isStopped","hasError","onError","error","onCompleted","onNext","value","hasObservers","os","exception","createRemovableDisposable","so","subscription","_trim","now","q","ensureActive","windowSize","Number","MAX_VALUE","shift","interval","hasSubscription","sourceObservable","asObservable","o","connectableSubscription","count","shouldConnect"],"mappings":";CAEE,SAAUA,GACR,GAAIC,IACAC,WAAW,EACXC,YAAY,EACZC,QAAU,EACVC,QAAU,EACVC,QAAU,EACVC,WAAa,GAGbC,EAAQP,QAAmBQ,UAAWA,QAAWC,KACjDC,EAAcV,QAAmBW,WAAYA,UAAYA,QAAQC,UAAYD,QAC7EE,EAAab,QAAmBc,UAAWA,SAAWA,OAAOF,UAAYE,OAEzEC,GADgBF,GAAcA,EAAWF,UAAYD,GAAeA,EACvDV,QAAmBgB,UAAWA,SAE3CD,GAAeA,EAAWC,SAAWD,GAAcA,EAAWP,SAAWO,IACzER,EAAOQ,GAIW,kBAAXE,SAAyBA,OAAOC,IACvCD,QAAQ,MAAO,SAAUE,EAAIR,GACzB,MAAOZ,GAAQQ,EAAMI,EAASQ,KAET,gBAAXL,SAAuBA,QAAUA,OAAOH,UAAYD,EAClEI,OAAOH,QAAUZ,EAAQQ,EAAMO,OAAOH,QAASS,QAAQ,SAEvDb,EAAKY,GAAKpB,EAAQQ,KAAUA,EAAKY,MAEvCE,KAAKZ,KAAM,SAAUF,EAAMe,EAAKH,GAmBhC,QAASI,GAAcC,GAAQ,GAAIA,EAAKC,WAAc,KAAM,IAAIC,OAAMC,GACtE,QAASC,GAAWC,GAAO,IAAI,GAAIC,MAAQC,EAAI,EAAGC,EAAMH,EAAII,OAAYD,EAAJD,EAASA,IAAOD,EAAEI,KAAKL,EAAIE,GAAO,OAAOD,GAlB7G,GAAIK,GAAahB,EAAGgB,WAClBC,EAAkBD,EAAWE,UAC7BC,EAAsBnB,EAAGmB,oBACzBC,EAAUpB,EAAGoB,QACbC,EAAerB,EAAGqB,aAClBC,EAAWtB,EAAGsB,SACdC,EAAoBvB,EAAGwB,UAAUD,kBACjCE,EAAmBzB,EAAG0B,WAAWC,OACjCC,EAAkB5B,EAAG0B,WAAWG,MAChCC,EAAsB9B,EAAG8B,oBACzBC,EAAyB/B,EAAGgC,UAAUC,cACtCC,EAAalC,EAAGmC,QAAQD,WACxBE,EAAWpC,EAAGwB,UAAUY,SACxBC,EAAgBrC,EAAGwB,UAAUa,cAG3B7B,EAAiB,0BAqBrBS,GAAgBqB,UAAY,SAAUC,EAA0BC,GAC9D,GAAIC,GAASnD,IACb,OAA2C,kBAA7BiD,GACZ,GAAIpB,GAAoB,SAAUuB,GAChC,GAAIC,GAAcF,EAAOH,UAAUC,IACnC,OAAO,IAAIT,GAAoBU,EAASG,GAAaC,UAAUF,GAAWC,EAAYE,YACrFJ,GACH,GAAIK,GAAsBL,EAAQF,IActCtB,EAAgB8B,QAAU,SAAUP,GAClC,MAAOA,IAAYN,EAAWM,GAC5BlD,KAAKgD,UAAU,WAAc,MAAO,IAAIlB,IAAcoB,GACtDlD,KAAKgD,UAAU,GAAIlB,KAQvBH,EAAgB+B,MAAQ,WACtB,MAAO1D,MAAKyD,UAAUE,YAcxBhC,EAAgBiC,YAAc,SAAUV,GACtC,MAAOA,IAAYN,EAAWM,GAC5BlD,KAAKgD,UAAU,WAAc,MAAO,IAAIjB,IAAmBmB,GAC3DlD,KAAKgD,UAAU,GAAIjB,KAevBJ,EAAgBkC,aAAe,SAAUC,EAAwBC,GAC/D,MAA4B,KAArBC,UAAUxC,OACfxB,KAAKgD,UAAU,WACb,MAAO,IAAIiB,GAAgBF,IAC1BD,GACH9D,KAAKgD,UAAU,GAAIiB,GAAgBH,KASvCnC,EAAgBuC,WAAa,SAAUH,GACrC,MAAO/D,MAAK6D,aAAaE,GAAcJ,YAmBzChC,EAAgBwC,OAAS,SAAUjB,EAAUkB,EAAYrE,EAAQsE,GAC/D,MAAOnB,IAAYN,EAAWM,GAC5BlD,KAAKgD,UAAU,WAAc,MAAO,IAAIsB,GAAcF,EAAYrE,EAAQsE,IAAenB,GACzFlD,KAAKgD,UAAU,GAAIsB,GAAcF,EAAYrE,EAAQsE,KAkBzD1C,EAAgB4C,YAAc,SAAUH,EAAYrE,EAAQsE,GAC1D,MAAOrE,MAAKmE,OAAO,KAAMC,EAAYrE,EAAQsE,GAAWV,WAG1D,IAAIa,GAAoB,SAAUC,EAASrB,GACzCpD,KAAKyE,QAAUA,EACfzE,KAAKoD,SAAWA,EAGlBoB,GAAkB5C,UAAU8C,QAAU,WACpC,IAAK1E,KAAKyE,QAAQzD,YAAgC,OAAlBhB,KAAKoD,SAAmB,CACtD,GAAIuB,GAAM3E,KAAKyE,QAAQG,UAAUC,QAAQ7E,KAAKoD,SAC9CpD,MAAKyE,QAAQG,UAAUE,OAAOH,EAAK,GACnC3E,KAAKoD,SAAW,MAQpB,IAAIa,GAAkBvD,EAAGuD,gBAAmB,SAAUc,GACpD,QAASzB,GAAUF,GAEjB,MADAtC,GAAcd,MACTA,KAAKgF,WAKNhF,KAAKiF,SACP7B,EAAS8B,QAAQlF,KAAKmF,OAEtB/B,EAASgC,cAEJ9C,IATLtC,KAAK4E,UAAUnD,KAAK2B,GACpBA,EAASiC,OAAOrF,KAAKsF,OACd,GAAId,GAAkBxE,KAAMoD,IAgBvC,QAASa,GAAgBqB,GACvBP,EAAUnE,KAAKZ,KAAMsD,GACrBtD,KAAKsF,MAAQA,EACbtF,KAAK4E,aACL5E,KAAKgB,YAAa,EAClBhB,KAAKgF,WAAY,EACjBhF,KAAKiF,UAAW,EA8DlB,MA1EAnC,GAASmB,EAAiBc,GAe1BhC,EAAckB,EAAgBrC,UAAWI,GAKvCuD,aAAc,WAAc,MAAOvF,MAAK4E,UAAUpD,OAAS,GAI3D4D,YAAa,WAEX,GADAtE,EAAcd,OACVA,KAAKgF,UAAT,CACAhF,KAAKgF,WAAY,CACjB,KAAK,GAAI1D,GAAI,EAAGkE,EAAKrE,EAAWnB,KAAK4E,WAAYrD,EAAMiE,EAAGhE,OAAYD,EAAJD,EAASA,IACzEkE,EAAGlE,GAAG8D,aAGRpF,MAAK4E,UAAUpD,OAAS,IAM1B0D,QAAS,SAAUC,GAEjB,GADArE,EAAcd,OACVA,KAAKgF,UAAT,CACAhF,KAAKgF,WAAY,EACjBhF,KAAKiF,UAAW,EAChBjF,KAAKmF,MAAQA,CAEb,KAAK,GAAI7D,GAAI,EAAGkE,EAAKrE,EAAWnB,KAAK4E,WAAYrD,EAAMiE,EAAGhE,OAAYD,EAAJD,EAASA,IACzEkE,EAAGlE,GAAG4D,QAAQC,EAGhBnF,MAAK4E,UAAUpD,OAAS,IAM1B6D,OAAQ,SAAUC,GAEhB,GADAxE,EAAcd,OACVA,KAAKgF,UAAT,CACAhF,KAAKsF,MAAQA,CACb,KAAK,GAAIhE,GAAI,EAAGkE,EAAKrE,EAAWnB,KAAK4E,WAAYrD,EAAMiE,EAAGhE,OAAYD,EAAJD,EAASA,IACzEkE,EAAGlE,GAAG+D,OAAOC,KAMjBZ,QAAS,WACP1E,KAAKgB,YAAa,EAClBhB,KAAK4E,UAAY,KACjB5E,KAAKsF,MAAQ,KACbtF,KAAKyF,UAAY,QAIdxB,GACPvC,GAME4C,EAAgB5D,EAAG4D,cAAiB,SAAUS,GAEhD,QAASW,GAA0BjB,EAASrB,GAC1C,MAAOjB,GAAiB,WACtBiB,EAASsB,WACRD,EAAQzD,YAAcyD,EAAQG,UAAUE,OAAOL,EAAQG,UAAUC,QAAQzB,GAAW,KAIzF,QAASE,GAAUF,GACjB,GAAIuC,GAAK,GAAI1D,GAAkBjC,KAAKqE,UAAWjB,GAC7CwC,EAAeF,EAA0B1F,KAAM2F,EACjD7E,GAAcd,MACdA,KAAK6F,MAAM7F,KAAKqE,UAAUyB,OAC1B9F,KAAK4E,UAAUnD,KAAKkE,EAEpB,KAAK,GAAIrE,GAAI,EAAGC,EAAMvB,KAAK+F,EAAEvE,OAAYD,EAAJD,EAASA,IAC5CqE,EAAGN,OAAOrF,KAAK+F,EAAEzE,GAAGgE,MAUtB,OAPItF,MAAKiF,SACPU,EAAGT,QAAQlF,KAAKmF,OACPnF,KAAKgF,WACdW,EAAGP,cAGLO,EAAGK,eACIJ,EAWT,QAAStB,GAAcF,EAAY6B,EAAY5B,GAC7CrE,KAAKoE,WAA2B,MAAdA,EAAqB8B,OAAOC,UAAY/B,EAC1DpE,KAAKiG,WAA2B,MAAdA,EAAqBC,OAAOC,UAAYF,EAC1DjG,KAAKqE,UAAYA,GAAa5B,EAC9BzC,KAAK+F,KACL/F,KAAK4E,aACL5E,KAAKgF,WAAY,EACjBhF,KAAKgB,YAAa,EAClBhB,KAAKiF,UAAW,EAChBjF,KAAKmF,MAAQ,KACbJ,EAAUnE,KAAKZ,KAAMsD,GAgFvB,MAlGAR,GAASwB,EAAeS,GAqBxBhC,EAAcuB,EAAc1C,UAAWI,EAASJ,WAK9C2D,aAAc,WACZ,MAAOvF,MAAK4E,UAAUpD,OAAS,GAEjCqE,MAAO,SAAUC,GACf,KAAO9F,KAAK+F,EAAEvE,OAASxB,KAAKoE,YAC1BpE,KAAK+F,EAAEK,OAET,MAAOpG,KAAK+F,EAAEvE,OAAS,GAAMsE,EAAM9F,KAAK+F,EAAE,GAAGM,SAAYrG,KAAKiG,YAC5DjG,KAAK+F,EAAEK,SAOXf,OAAQ,SAAUC,GAEhB,GADAxE,EAAcd,OACVA,KAAKgF,UAAT,CACA,GAAIc,GAAM9F,KAAKqE,UAAUyB,KACzB9F,MAAK+F,EAAEtE,MAAO4E,SAAUP,EAAKR,MAAOA,IACpCtF,KAAK6F,MAAMC,EAEX,KAAK,GAAIxE,GAAI,EAAGkE,EAAKrE,EAAWnB,KAAK4E,WAAYrD,EAAMiE,EAAGhE,OAAYD,EAAJD,EAASA,IAAK,CAC9E,GAAI8B,GAAWoC,EAAGlE,EAClB8B,GAASiC,OAAOC,GAChBlC,EAAS4C,kBAObd,QAAS,SAAUC,GAEjB,GADArE,EAAcd,OACVA,KAAKgF,UAAT,CACAhF,KAAKgF,WAAY,EACjBhF,KAAKmF,MAAQA,EACbnF,KAAKiF,UAAW,CAChB,IAAIa,GAAM9F,KAAKqE,UAAUyB,KACzB9F,MAAK6F,MAAMC,EACX,KAAK,GAAIxE,GAAI,EAAGkE,EAAKrE,EAAWnB,KAAK4E,WAAYrD,EAAMiE,EAAGhE,OAAYD,EAAJD,EAASA,IAAK,CAC9E,GAAI8B,GAAWoC,EAAGlE,EAClB8B,GAAS8B,QAAQC,GACjB/B,EAAS4C,eAEXhG,KAAK4E,UAAUpD,OAAS,IAK1B4D,YAAa,WAEX,GADAtE,EAAcd,OACVA,KAAKgF,UAAT,CACAhF,KAAKgF,WAAY,CACjB,IAAIc,GAAM9F,KAAKqE,UAAUyB,KACzB9F,MAAK6F,MAAMC,EACX,KAAK,GAAIxE,GAAI,EAAGkE,EAAKrE,EAAWnB,KAAK4E,WAAYrD,EAAMiE,EAAGhE,OAAYD,EAAJD,EAASA,IAAK,CAC9E,GAAI8B,GAAWoC,EAAGlE,EAClB8B,GAASgC,cACThC,EAAS4C,eAEXhG,KAAK4E,UAAUpD,OAAS,IAK1BkD,QAAS,WACP1E,KAAKgB,YAAa,EAClBhB,KAAK4E,UAAY,QAIdN,GACP5C,GAEE8B,EAAwB9C,EAAG8C,sBAAyB,SAAUuB,GAGhE,QAASvB,GAAsBL,EAAQsB,GACrC,GACEmB,GADEU,GAAkB,EAEpBC,EAAmBpD,EAAOqD,cAE5BxG,MAAKuD,QAAU,WAOb,MANK+C,KACHA,GAAkB,EAClBV,EAAe,GAAIpD,GAAoB+D,EAAiBjD,UAAUmB,GAAUtC,EAAiB,WAC3FmE,GAAkB,MAGfV,GAGTb,EAAUnE,KAAKZ,KAAM,SAAUyG,GAAK,MAAOhC,GAAQnB,UAAUmD,KAgB/D,MAjCA3D,GAASU,EAAuBuB,GAoBhCvB,EAAsB5B,UAAU+B,SAAW,WACzC,GAAI+C,GAAyBC,EAAQ,EAAGxD,EAASnD,IACjD,OAAO,IAAI6B,GAAoB,SAAUuB,GACrC,GAAIwD,GAA4B,MAAVD,EACpBf,EAAezC,EAAOG,UAAUF,EAElC,OADAwD,KAAkBF,EAA0BvD,EAAOI,WAC5C,WACLqC,EAAalB,UACD,MAAViC,GAAeD,EAAwBhC,cAK1ClB,GACP9B,EAEA,OAAOhB"}
1
+ {"version":3,"file":"rx.binding.min.js","sources":["rx.binding.js"],"names":["factory","objectTypes","boolean","function","object","number","string","undefined","root","window","this","freeExports","exports","nodeType","freeModule","module","freeGlobal","global","define","amd","Rx","require","call","exp","cloneArray","arr","len","length","a","Array","i","Observable","observableProto","prototype","AnonymousObservable","Subject","AsyncSubject","Observer","ScheduledObserver","internals","disposableCreate","Disposable","create","disposableEmpty","empty","CompositeDisposable","currentThreadScheduler","Scheduler","currentThread","isFunction","helpers","inherits","addProperties","checkDisposed","multicast","subjectOrSubjectSelector","selector","source","observer","connectable","subscribe","connect","ConnectableObservable","publish","share","refCount","publishLast","publishValue","initialValueOrSelector","initialValue","arguments","BehaviorSubject","shareValue","replay","bufferSize","windowSize","scheduler","ReplaySubject","shareReplay","InnerSubscription","subject","dispose","isDisposed","idx","observers","indexOf","splice","__super__","isStopped","hasError","onError","error","onCompleted","push","onNext","value","getValue","hasObservers","os","exception","createRemovableDisposable","so","subscription","_trim","now","q","ensureActive","maxSafeInteger","Math","pow","shift","interval","hasSubscription","sourceObservable","asObservable","o","connectableSubscription","count","shouldConnect"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  /* Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.*/
2
- (function(a){var b={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},c=b[typeof window]&&window||this,d=b[typeof exports]&&exports&&!exports.nodeType&&exports,e=b[typeof module]&&module&&!module.nodeType&&module,f=(e&&e.exports===d&&d,b[typeof global]&&global);!f||f.global!==f&&f.window!==f||(c=f),"function"==typeof define&&define.amd?define(["rx"],function(b,d){return a(c,d,b)}):"object"==typeof module&&module&&module.exports===d?module.exports=a(c,module.exports,require("./rx")):c.Rx=a(c,{},c.Rx)}).call(this,function(a,b,c){function d(a){if(a.isDisposed)throw new Error(t)}function e(a){for(var b=[],c=0,d=a.length;d>c;c++)b.push(a[c]);return b}var f=c.Observable,g=f.prototype,h=c.AnonymousObservable,i=c.Subject,j=c.AsyncSubject,k=c.Observer,l=c.internals.ScheduledObserver,m=c.Disposable.create,n=c.Disposable.empty,o=c.CompositeDisposable,p=c.Scheduler.currentThread,q=c.helpers.isFunction,r=c.internals.inherits,s=c.internals.addProperties,t="Object has been disposed";g.multicast=function(a,b){var c=this;return"function"==typeof a?new h(function(d){var e=c.multicast(a());return new o(b(e).subscribe(d),e.connect())},c):new x(c,a)},g.publish=function(a){return a&&q(a)?this.multicast(function(){return new i},a):this.multicast(new i)},g.share=function(){return this.publish().refCount()},g.publishLast=function(a){return a&&q(a)?this.multicast(function(){return new j},a):this.multicast(new j)},g.publishValue=function(a,b){return 2===arguments.length?this.multicast(function(){return new v(b)},a):this.multicast(new v(a))},g.shareValue=function(a){return this.publishValue(a).refCount()},g.replay=function(a,b,c,d){return a&&q(a)?this.multicast(function(){return new w(b,c,d)},a):this.multicast(new w(b,c,d))},g.shareReplay=function(a,b,c){return this.replay(null,a,b,c).refCount()};var u=function(a,b){this.subject=a,this.observer=b};u.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var v=c.BehaviorSubject=function(a){function b(a){return d(this),this.isStopped?(this.hasError?a.onError(this.error):a.onCompleted(),n):(this.observers.push(a),a.onNext(this.value),new u(this,a))}function c(c){a.call(this,b),this.value=c,this.observers=[],this.isDisposed=!1,this.isStopped=!1,this.hasError=!1}return r(c,a),s(c.prototype,k,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(d(this),!this.isStopped){this.isStopped=!0;for(var a=0,b=e(this.observers),c=b.length;c>a;a++)b[a].onCompleted();this.observers.length=0}},onError:function(a){if(d(this),!this.isStopped){this.isStopped=!0,this.hasError=!0,this.error=a;for(var b=0,c=e(this.observers),f=c.length;f>b;b++)c[b].onError(a);this.observers.length=0}},onNext:function(a){if(d(this),!this.isStopped){this.value=a;for(var b=0,c=e(this.observers),f=c.length;f>b;b++)c[b].onNext(a)}},dispose:function(){this.isDisposed=!0,this.observers=null,this.value=null,this.exception=null}}),c}(f),w=c.ReplaySubject=function(a){function b(a,b){return m(function(){b.dispose(),!a.isDisposed&&a.observers.splice(a.observers.indexOf(b),1)})}function c(a){var c=new l(this.scheduler,a),e=b(this,c);d(this),this._trim(this.scheduler.now()),this.observers.push(c);for(var f=0,g=this.q.length;g>f;f++)c.onNext(this.q[f].value);return this.hasError?c.onError(this.error):this.isStopped&&c.onCompleted(),c.ensureActive(),e}function f(b,d,e){this.bufferSize=null==b?Number.MAX_VALUE:b,this.windowSize=null==d?Number.MAX_VALUE:d,this.scheduler=e||p,this.q=[],this.observers=[],this.isStopped=!1,this.isDisposed=!1,this.hasError=!1,this.error=null,a.call(this,c)}return r(f,a),s(f.prototype,k.prototype,{hasObservers:function(){return this.observers.length>0},_trim:function(a){for(;this.q.length>this.bufferSize;)this.q.shift();for(;this.q.length>0&&a-this.q[0].interval>this.windowSize;)this.q.shift()},onNext:function(a){if(d(this),!this.isStopped){var b=this.scheduler.now();this.q.push({interval:b,value:a}),this._trim(b);for(var c=0,f=e(this.observers),g=f.length;g>c;c++){var h=f[c];h.onNext(a),h.ensureActive()}}},onError:function(a){if(d(this),!this.isStopped){this.isStopped=!0,this.error=a,this.hasError=!0;var b=this.scheduler.now();this._trim(b);for(var c=0,f=e(this.observers),g=f.length;g>c;c++){var h=f[c];h.onError(a),h.ensureActive()}this.observers.length=0}},onCompleted:function(){if(d(this),!this.isStopped){this.isStopped=!0;var a=this.scheduler.now();this._trim(a);for(var b=0,c=e(this.observers),f=c.length;f>b;b++){var g=c[b];g.onCompleted(),g.ensureActive()}this.observers.length=0}},dispose:function(){this.isDisposed=!0,this.observers=null}}),f}(f),x=c.ConnectableObservable=function(a){function b(b,c){var d,e=!1,f=b.asObservable();this.connect=function(){return e||(e=!0,d=new o(f.subscribe(c),m(function(){e=!1}))),d},a.call(this,function(a){return c.subscribe(a)})}return r(b,a),b.prototype.refCount=function(){var a,b=0,c=this;return new h(function(d){var e=1===++b,f=c.subscribe(d);return e&&(a=c.connect()),function(){f.dispose(),0===--b&&a.dispose()}})},b}(f);return c});
2
+ (function(a){var b={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},c=b[typeof window]&&window||this,d=b[typeof exports]&&exports&&!exports.nodeType&&exports,e=b[typeof module]&&module&&!module.nodeType&&module,f=(e&&e.exports===d&&d,b[typeof global]&&global);!f||f.global!==f&&f.window!==f||(c=f),"function"==typeof define&&define.amd?define(["rx"],function(b,d){return a(c,d,b)}):"object"==typeof module&&module&&module.exports===d?module.exports=a(c,module.exports,require("./rx")):c.Rx=a(c,{},c.Rx)}).call(this,function(a,b,c){function d(a){for(var b=a.length,c=new Array(b),d=0;b>d;d++)c[d]=a[d];return c}var e=c.Observable,f=e.prototype,g=c.AnonymousObservable,h=c.Subject,i=c.AsyncSubject,j=c.Observer,k=c.internals.ScheduledObserver,l=c.Disposable.create,m=c.Disposable.empty,n=c.CompositeDisposable,o=c.Scheduler.currentThread,p=c.helpers.isFunction,q=c.internals.inherits,r=c.internals.addProperties,s=c.Disposable.checkDisposed;f.multicast=function(a,b){var c=this;return"function"==typeof a?new g(function(d){var e=c.multicast(a());return new n(b(e).subscribe(d),e.connect())},c):new w(c,a)},f.publish=function(a){return a&&p(a)?this.multicast(function(){return new h},a):this.multicast(new h)},f.share=function(){return this.publish().refCount()},f.publishLast=function(a){return a&&p(a)?this.multicast(function(){return new i},a):this.multicast(new i)},f.publishValue=function(a,b){return 2===arguments.length?this.multicast(function(){return new u(b)},a):this.multicast(new u(a))},f.shareValue=function(a){return this.publishValue(a).refCount()},f.replay=function(a,b,c,d){return a&&p(a)?this.multicast(function(){return new v(b,c,d)},a):this.multicast(new v(b,c,d))},f.shareReplay=function(a,b,c){return this.replay(null,a,b,c).refCount()};var t=function(a,b){this.subject=a,this.observer=b};t.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var u=c.BehaviorSubject=function(a){function b(a){return s(this),this.isStopped?(this.hasError?a.onError(this.error):a.onCompleted(),m):(this.observers.push(a),a.onNext(this.value),new t(this,a))}function c(c){a.call(this,b),this.value=c,this.observers=[],this.isDisposed=!1,this.isStopped=!1,this.hasError=!1}return q(c,a),r(c.prototype,j,{getValue:function(){if(s(this),this.hasError)throw this.error;return this.value},hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(s(this),!this.isStopped){this.isStopped=!0;for(var a=0,b=d(this.observers),c=b.length;c>a;a++)b[a].onCompleted();this.observers.length=0}},onError:function(a){if(s(this),!this.isStopped){this.isStopped=!0,this.hasError=!0,this.error=a;for(var b=0,c=d(this.observers),e=c.length;e>b;b++)c[b].onError(a);this.observers.length=0}},onNext:function(a){if(s(this),!this.isStopped){this.value=a;for(var b=0,c=d(this.observers),e=c.length;e>b;b++)c[b].onNext(a)}},dispose:function(){this.isDisposed=!0,this.observers=null,this.value=null,this.exception=null}}),c}(e),v=c.ReplaySubject=function(a){function b(a,b){return l(function(){b.dispose(),!a.isDisposed&&a.observers.splice(a.observers.indexOf(b),1)})}function c(a){var c=new k(this.scheduler,a),d=b(this,c);s(this),this._trim(this.scheduler.now()),this.observers.push(c);for(var e=0,f=this.q.length;f>e;e++)c.onNext(this.q[e].value);return this.hasError?c.onError(this.error):this.isStopped&&c.onCompleted(),c.ensureActive(),d}function e(b,d,e){this.bufferSize=null==b?f:b,this.windowSize=null==d?f:d,this.scheduler=e||o,this.q=[],this.observers=[],this.isStopped=!1,this.isDisposed=!1,this.hasError=!1,this.error=null,a.call(this,c)}var f=Math.pow(2,53)-1;return q(e,a),r(e.prototype,j.prototype,{hasObservers:function(){return this.observers.length>0},_trim:function(a){for(;this.q.length>this.bufferSize;)this.q.shift();for(;this.q.length>0&&a-this.q[0].interval>this.windowSize;)this.q.shift()},onNext:function(a){if(s(this),!this.isStopped){var b=this.scheduler.now();this.q.push({interval:b,value:a}),this._trim(b);for(var c=0,e=d(this.observers),f=e.length;f>c;c++){var g=e[c];g.onNext(a),g.ensureActive()}}},onError:function(a){if(s(this),!this.isStopped){this.isStopped=!0,this.error=a,this.hasError=!0;var b=this.scheduler.now();this._trim(b);for(var c=0,e=d(this.observers),f=e.length;f>c;c++){var g=e[c];g.onError(a),g.ensureActive()}this.observers.length=0}},onCompleted:function(){if(s(this),!this.isStopped){this.isStopped=!0;var a=this.scheduler.now();this._trim(a);for(var b=0,c=d(this.observers),e=c.length;e>b;b++){var f=c[b];f.onCompleted(),f.ensureActive()}this.observers.length=0}},dispose:function(){this.isDisposed=!0,this.observers=null}}),e}(e),w=c.ConnectableObservable=function(a){function b(b,c){var d,e=!1,f=b.asObservable();this.connect=function(){return e||(e=!0,d=new n(f.subscribe(c),l(function(){e=!1}))),d},a.call(this,function(a){return c.subscribe(a)})}return q(b,a),b.prototype.refCount=function(){var a,b=0,c=this;return new g(function(d){var e=1===++b,f=c.subscribe(d);return e&&(a=c.connect()),function(){f.dispose(),0===--b&&a.dispose()}})},b}(e);return c});
3
3
  //# sourceMappingURL=rx.binding.map
@@ -49,7 +49,8 @@
49
49
  noop = Rx.helpers.noop,
50
50
  identity = Rx.helpers.identity,
51
51
  isPromise = Rx.helpers.isPromise,
52
- observableFromPromise = Observable.fromPromise;
52
+ observableFromPromise = Observable.fromPromise,
53
+ ArgumentOutOfRangeError = Rx.ArgumentOutOfRangeError;
53
54
 
54
55
  var Dictionary = (function () {
55
56
 
@@ -134,7 +135,7 @@
134
135
  }
135
136
 
136
137
  function Dictionary(capacity, comparer) {
137
- if (capacity < 0) { throw new Error('out of range'); }
138
+ if (capacity < 0) { throw new ArgumentOutOfRangeError(); }
138
139
  if (capacity > 0) { this._initialize(capacity); }
139
140
 
140
141
  this.comparer = comparer || defaultComparer;
@@ -1 +1 @@
1
- {"version":3,"file":"rx.coincidence.min.js","sources":["rx.coincidence.js"],"names":["factory","objectTypes","boolean","function","object","number","string","undefined","root","window","this","freeExports","exports","nodeType","freeModule","module","freeGlobal","global","define","amd","Rx","require","call","exp","observableWindowWithOpenings","windowOpenings","windowClosingSelector","groupJoin","observableEmpty","_","win","observableWindowWithBoundaries","windowBoundaries","source","AnonymousObservable","observer","Subject","d","CompositeDisposable","r","RefCountDisposable","onNext","addRef","add","subscribe","x","err","onError","onCompleted","isPromise","observableFromPromise","observableWindowWithClosingSelector","createWindowClose","windowClose","e","m1","SingleAssignmentDisposable","m","setDisposable","take","noop","SerialDisposable","Observable","observableProto","prototype","empty","observableNever","never","Observer","create","internals","defaultComparer","isEqual","inherits","helpers","identity","fromPromise","Dictionary","isPrime","candidate","num1","Math","sqrt","num2","getPrime","min","index","num","primes","length","stringHashFn","str","hash","i","len","character","charCodeAt","numberHashFn","key","c2","newEntry","value","next","hashCode","capacity","comparer","Error","_initialize","freeCount","size","freeList","noSuchkey","duplicatekey","getHashCode","uniqueIdCounter","obj","Date","valueOf","RegExp","toString","id","dictionaryProto","prime","buckets","Array","entries","_insert","index3","index1","index2","_resize","numArray","entryArray","remove","clear","_findEntry","count","tryGetValue","entry","getValues","results","get","set","containskey","join","right","leftDurationSelector","rightDurationSelector","resultSelector","left","group","leftDone","rightDone","leftId","rightId","leftMap","rightMap","md","duration","expire","bind","forEach","v","result","exn","handleError","s","buffer","apply","arguments","selectMany","toArray","windowOpeningsOrClosingSelector","pairwise","previous","hasPrevious","partition","predicate","thisArg","filter","o","groupBy","keySelector","elementSelector","groupByUntil","durationSelector","item","map","groupDisposable","refCountDisposable","fireNewMapEntry","writer","GroupedObservable","durationGroup","element","ex","__super__","underlyingObservable","mergedDisposable","getDisposable"],"mappings":"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"}
1
+ {"version":3,"file":"rx.coincidence.min.js","sources":["rx.coincidence.js"],"names":["factory","objectTypes","boolean","function","object","number","string","undefined","root","window","this","freeExports","exports","nodeType","freeModule","module","freeGlobal","global","define","amd","Rx","require","call","exp","observableWindowWithOpenings","windowOpenings","windowClosingSelector","groupJoin","observableEmpty","_","win","observableWindowWithBoundaries","windowBoundaries","source","AnonymousObservable","observer","Subject","d","CompositeDisposable","r","RefCountDisposable","onNext","addRef","add","subscribe","x","err","onError","onCompleted","isPromise","observableFromPromise","observableWindowWithClosingSelector","createWindowClose","windowClose","e","m1","SingleAssignmentDisposable","m","setDisposable","take","noop","SerialDisposable","Observable","observableProto","prototype","empty","observableNever","never","Observer","create","internals","defaultComparer","isEqual","inherits","helpers","identity","fromPromise","ArgumentOutOfRangeError","Dictionary","isPrime","candidate","num1","Math","sqrt","num2","getPrime","min","index","num","primes","length","stringHashFn","str","hash","i","len","character","charCodeAt","numberHashFn","key","c2","newEntry","value","next","hashCode","capacity","comparer","_initialize","freeCount","size","freeList","noSuchkey","duplicatekey","getHashCode","uniqueIdCounter","obj","Error","Date","valueOf","RegExp","toString","id","dictionaryProto","prime","buckets","Array","entries","_insert","index3","index1","index2","_resize","numArray","entryArray","remove","clear","_findEntry","count","tryGetValue","entry","getValues","results","get","set","containskey","join","right","leftDurationSelector","rightDurationSelector","resultSelector","left","group","leftDone","rightDone","leftId","rightId","leftMap","rightMap","md","duration","expire","bind","forEach","v","result","exn","handleError","s","buffer","apply","arguments","selectMany","toArray","windowOpeningsOrClosingSelector","pairwise","previous","hasPrevious","partition","predicate","thisArg","filter","o","groupBy","keySelector","elementSelector","groupByUntil","durationSelector","item","map","groupDisposable","refCountDisposable","fireNewMapEntry","writer","GroupedObservable","durationGroup","element","ex","__super__","underlyingObservable","mergedDisposable","getDisposable"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  /* Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.*/
2
- (function(a){var b={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},c=b[typeof window]&&window||this,d=b[typeof exports]&&exports&&!exports.nodeType&&exports,e=b[typeof module]&&module&&!module.nodeType&&module,f=(e&&e.exports===d&&d,b[typeof global]&&global);!f||f.global!==f&&f.window!==f||(c=f),"function"==typeof define&&define.amd?define(["rx"],function(b,d){return a(c,d,b)}):"object"==typeof module&&module&&module.exports===d?module.exports=a(c,module.exports,require("./rx")):c.Rx=a(c,{},c.Rx)}).call(this,function(a,b,c,d){function e(a,b){return a.groupJoin(this,b,o,function(a,b){return b})}function f(a){var b=this;return new q(function(c){var d=new m,e=new i,f=new j(e);return c.onNext(r(d,f)),e.add(b.subscribe(function(a){d.onNext(a)},function(a){d.onError(a),c.onError(a)},function(){d.onCompleted(),c.onCompleted()})),w(a)&&(a=x(a)),e.add(a.subscribe(function(){d.onCompleted(),d=new m,c.onNext(r(d,f))},function(a){d.onError(a),c.onError(a)},function(){d.onCompleted(),c.onCompleted()})),f},b)}function g(a){var b=this;return new q(function(c){function d(){var b;try{b=a()}catch(f){return void c.onError(f)}w(b)&&(b=x(b));var i=new k;e.setDisposable(i),i.setDisposable(b.take(1).subscribe(u,function(a){h.onError(a),c.onError(a)},function(){h.onCompleted(),h=new m,c.onNext(r(h,g)),d()}))}var e=new l,f=new i(e),g=new j(f),h=new m;return c.onNext(r(h,g)),f.add(b.subscribe(function(a){h.onNext(a)},function(a){h.onError(a),c.onError(a)},function(){h.onCompleted(),c.onCompleted()})),d(),g},b)}var h=c.Observable,i=c.CompositeDisposable,j=c.RefCountDisposable,k=c.SingleAssignmentDisposable,l=c.SerialDisposable,m=c.Subject,n=h.prototype,o=h.empty,p=h.never,q=c.AnonymousObservable,r=(c.Observer.create,c.internals.addRef),s=c.internals.isEqual,t=c.internals.inherits,u=c.helpers.noop,v=c.helpers.identity,w=c.helpers.isPromise,x=h.fromPromise,y=function(){function a(a){if(0===(1&a))return 2===a;for(var b=Math.sqrt(a),c=3;b>=c;){if(a%c===0)return!1;c+=2}return!0}function b(b){var c,d,e;for(c=0;c<h.length;++c)if(d=h[c],d>=b)return d;for(e=1|b;e<h[h.length-1];){if(a(e))return e;e+=2}return b}function c(a){var b=757602046;if(!a.length)return b;for(var c=0,d=a.length;d>c;c++){var e=a.charCodeAt(c);b=(b<<5)-b+e,b&=b}return b}function e(a){var b=668265261;return a=61^a^a>>>16,a+=a<<3,a^=a>>>4,a*=b,a^=a>>>15}function f(){return{key:null,value:null,next:0,hashCode:0}}function g(a,b){if(0>a)throw new Error("out of range");a>0&&this._initialize(a),this.comparer=b||s,this.freeCount=0,this.size=0,this.freeList=-1}var h=[1,3,7,13,31,61,127,251,509,1021,2039,4093,8191,16381,32749,65521,131071,262139,524287,1048573,2097143,4194301,8388593,16777213,33554393,67108859,134217689,268435399,536870909,1073741789,2147483647],i="no such key",j="duplicate key",k=function(){var a=0;return function(b){if(null==b)throw new Error(i);if("string"==typeof b)return c(b);if("number"==typeof b)return e(b);if("boolean"==typeof b)return b===!0?1:0;if(b instanceof Date)return e(b.valueOf());if(b instanceof RegExp)return c(b.toString());if("function"==typeof b.valueOf){var d=b.valueOf();if("number"==typeof d)return e(d);if("string"==typeof d)return c(d)}if(b.hashCode)return b.hashCode();var f=17*a++;return b.hashCode=function(){return f},f}}(),l=g.prototype;return l._initialize=function(a){var c,d=b(a);for(this.buckets=new Array(d),this.entries=new Array(d),c=0;d>c;c++)this.buckets[c]=-1,this.entries[c]=f();this.freeList=-1},l.add=function(a,b){this._insert(a,b,!0)},l._insert=function(a,b,c){this.buckets||this._initialize(0);for(var d,e=2147483647&k(a),f=e%this.buckets.length,g=this.buckets[f];g>=0;g=this.entries[g].next)if(this.entries[g].hashCode===e&&this.comparer(this.entries[g].key,a)){if(c)throw new Error(j);return void(this.entries[g].value=b)}this.freeCount>0?(d=this.freeList,this.freeList=this.entries[d].next,--this.freeCount):(this.size===this.entries.length&&(this._resize(),f=e%this.buckets.length),d=this.size,++this.size),this.entries[d].hashCode=e,this.entries[d].next=this.buckets[f],this.entries[d].key=a,this.entries[d].value=b,this.buckets[f]=d},l._resize=function(){var a=b(2*this.size),c=new Array(a);for(e=0;e<c.length;++e)c[e]=-1;var d=new Array(a);for(e=0;e<this.size;++e)d[e]=this.entries[e];for(var e=this.size;a>e;++e)d[e]=f();for(var g=0;g<this.size;++g){var h=d[g].hashCode%a;d[g].next=c[h],c[h]=g}this.buckets=c,this.entries=d},l.remove=function(a){if(this.buckets)for(var b=2147483647&k(a),c=b%this.buckets.length,d=-1,e=this.buckets[c];e>=0;e=this.entries[e].next){if(this.entries[e].hashCode===b&&this.comparer(this.entries[e].key,a))return 0>d?this.buckets[c]=this.entries[e].next:this.entries[d].next=this.entries[e].next,this.entries[e].hashCode=-1,this.entries[e].next=this.freeList,this.entries[e].key=null,this.entries[e].value=null,this.freeList=e,++this.freeCount,!0;d=e}return!1},l.clear=function(){var a,b;if(!(this.size<=0)){for(a=0,b=this.buckets.length;b>a;++a)this.buckets[a]=-1;for(a=0;a<this.size;++a)this.entries[a]=f();this.freeList=-1,this.size=0}},l._findEntry=function(a){if(this.buckets)for(var b=2147483647&k(a),c=this.buckets[b%this.buckets.length];c>=0;c=this.entries[c].next)if(this.entries[c].hashCode===b&&this.comparer(this.entries[c].key,a))return c;return-1},l.count=function(){return this.size-this.freeCount},l.tryGetValue=function(a){var b=this._findEntry(a);return b>=0?this.entries[b].value:d},l.getValues=function(){var a=0,b=[];if(this.entries)for(var c=0;c<this.size;c++)this.entries[c].hashCode>=0&&(b[a++]=this.entries[c].value);return b},l.get=function(a){var b=this._findEntry(a);if(b>=0)return this.entries[b].value;throw new Error(i)},l.set=function(a,b){this._insert(a,b,!1)},l.containskey=function(a){return this._findEntry(a)>=0},g}();n.join=function(a,b,c,d){var e=this;return new q(function(f){var g=new i,h=!1,j=!1,l=0,m=0,n=new y,o=new y;return g.add(e.subscribe(function(a){var c=l++,e=new k;n.add(c,a),g.add(e);var i,j=function(){n.remove(c)&&0===n.count()&&h&&f.onCompleted(),g.remove(e)};try{i=b(a)}catch(m){return void f.onError(m)}e.setDisposable(i.take(1).subscribe(u,f.onError.bind(f),j)),o.getValues().forEach(function(b){var c;try{c=d(a,b)}catch(e){return void f.onError(e)}f.onNext(c)})},f.onError.bind(f),function(){h=!0,(j||0===n.count())&&f.onCompleted()})),g.add(a.subscribe(function(a){var b=m++,e=new k;o.add(b,a),g.add(e);var h,i=function(){o.remove(b)&&0===o.count()&&j&&f.onCompleted(),g.remove(e)};try{h=c(a)}catch(l){return void f.onError(l)}e.setDisposable(h.take(1).subscribe(u,f.onError.bind(f),i)),n.getValues().forEach(function(b){var c;try{c=d(b,a)}catch(e){return void f.onError(e)}f.onNext(c)})},f.onError.bind(f),function(){j=!0,(h||0===o.count())&&f.onCompleted()})),g},e)},n.groupJoin=function(a,b,c,d){var e=this;return new q(function(f){function g(a){return function(b){b.onError(a)}}var h=new i,l=new j(h),n=new y,o=new y,p=0,q=0;return h.add(e.subscribe(function(a){var c=new m,e=p++;n.add(e,c);var i;try{i=d(a,r(c,l))}catch(j){return n.getValues().forEach(g(j)),void f.onError(j)}f.onNext(i),o.getValues().forEach(function(a){c.onNext(a)});var q=new k;h.add(q);var s,t=function(){n.remove(e)&&c.onCompleted(),h.remove(q)};try{s=b(a)}catch(j){return n.getValues().forEach(g(j)),void f.onError(j)}q.setDisposable(s.take(1).subscribe(u,function(a){n.getValues().forEach(g(a)),f.onError(a)},t))},function(a){n.getValues().forEach(g(a)),f.onError(a)},f.onCompleted.bind(f))),h.add(a.subscribe(function(a){var b=q++;o.add(b,a);var d=new k;h.add(d);var e,i=function(){o.remove(b),h.remove(d)};try{e=c(a)}catch(j){return n.getValues().forEach(g(j)),void f.onError(j)}d.setDisposable(e.take(1).subscribe(u,function(a){n.getValues().forEach(g(a)),f.onError(a)},i)),n.getValues().forEach(function(b){b.onNext(a)})},function(a){n.getValues().forEach(g(a)),f.onError(a)})),l},e)},n.buffer=function(){return this.window.apply(this,arguments).selectMany(function(a){return a.toArray()})},n.window=function(a,b){return 1===arguments.length&&"function"!=typeof arguments[0]?f.call(this,a):"function"==typeof a?g.call(this,a):e.call(this,a,b)},n.pairwise=function(){var a=this;return new q(function(b){var c,d=!1;return a.subscribe(function(a){d?b.onNext([c,a]):d=!0,c=a},b.onError.bind(b),b.onCompleted.bind(b))},a)},n.partition=function(a,b){return[this.filter(a,b),this.filter(function(c,d,e){return!a.call(b,c,d,e)})]},n.groupBy=function(a,b,c){return this.groupByUntil(a,b,p,c)},n.groupByUntil=function(a,b,c,d){var e=this;return b||(b=v),d||(d=s),new q(function(f){function g(a){return function(b){b.onError(a)}}var h=new y(0,d),l=new i,n=new j(l);return l.add(e.subscribe(function(d){var e;try{e=a(d)}catch(i){return h.getValues().forEach(g(i)),void f.onError(i)}var j=!1,o=h.tryGetValue(e);if(o||(o=new m,h.set(e,o),j=!0),j){var p=new z(e,o,n),q=new z(e,o);try{duration=c(q)}catch(i){return h.getValues().forEach(g(i)),void f.onError(i)}f.onNext(p);var r=new k;l.add(r);var s=function(){h.remove(e)&&o.onCompleted(),l.remove(r)};r.setDisposable(duration.take(1).subscribe(u,function(a){h.getValues().forEach(g(a)),f.onError(a)},s))}var t;try{t=b(d)}catch(i){return h.getValues().forEach(g(i)),void f.onError(i)}o.onNext(t)},function(a){h.getValues().forEach(g(a)),f.onError(a)},function(){h.getValues().forEach(function(a){a.onCompleted()}),f.onCompleted()})),n},e)};var z=function(a){function b(a){return this.underlyingObservable.subscribe(a)}function c(c,d,e){a.call(this,b),this.key=c,this.underlyingObservable=e?new q(function(a){return new i(e.getDisposable(),d.subscribe(a))}):d}return t(c,a),c}(h);return c});
2
+ (function(a){var b={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},c=b[typeof window]&&window||this,d=b[typeof exports]&&exports&&!exports.nodeType&&exports,e=b[typeof module]&&module&&!module.nodeType&&module,f=(e&&e.exports===d&&d,b[typeof global]&&global);!f||f.global!==f&&f.window!==f||(c=f),"function"==typeof define&&define.amd?define(["rx"],function(b,d){return a(c,d,b)}):"object"==typeof module&&module&&module.exports===d?module.exports=a(c,module.exports,require("./rx")):c.Rx=a(c,{},c.Rx)}).call(this,function(a,b,c,d){function e(a,b){return a.groupJoin(this,b,o,function(a,b){return b})}function f(a){var b=this;return new q(function(c){var d=new m,e=new i,f=new j(e);return c.onNext(r(d,f)),e.add(b.subscribe(function(a){d.onNext(a)},function(a){d.onError(a),c.onError(a)},function(){d.onCompleted(),c.onCompleted()})),w(a)&&(a=x(a)),e.add(a.subscribe(function(){d.onCompleted(),d=new m,c.onNext(r(d,f))},function(a){d.onError(a),c.onError(a)},function(){d.onCompleted(),c.onCompleted()})),f},b)}function g(a){var b=this;return new q(function(c){function d(){var b;try{b=a()}catch(f){return void c.onError(f)}w(b)&&(b=x(b));var i=new k;e.setDisposable(i),i.setDisposable(b.take(1).subscribe(u,function(a){h.onError(a),c.onError(a)},function(){h.onCompleted(),h=new m,c.onNext(r(h,g)),d()}))}var e=new l,f=new i(e),g=new j(f),h=new m;return c.onNext(r(h,g)),f.add(b.subscribe(function(a){h.onNext(a)},function(a){h.onError(a),c.onError(a)},function(){h.onCompleted(),c.onCompleted()})),d(),g},b)}var h=c.Observable,i=c.CompositeDisposable,j=c.RefCountDisposable,k=c.SingleAssignmentDisposable,l=c.SerialDisposable,m=c.Subject,n=h.prototype,o=h.empty,p=h.never,q=c.AnonymousObservable,r=(c.Observer.create,c.internals.addRef),s=c.internals.isEqual,t=c.internals.inherits,u=c.helpers.noop,v=c.helpers.identity,w=c.helpers.isPromise,x=h.fromPromise,y=c.ArgumentOutOfRangeError,z=function(){function a(a){if(0===(1&a))return 2===a;for(var b=Math.sqrt(a),c=3;b>=c;){if(a%c===0)return!1;c+=2}return!0}function b(b){var c,d,e;for(c=0;c<h.length;++c)if(d=h[c],d>=b)return d;for(e=1|b;e<h[h.length-1];){if(a(e))return e;e+=2}return b}function c(a){var b=757602046;if(!a.length)return b;for(var c=0,d=a.length;d>c;c++){var e=a.charCodeAt(c);b=(b<<5)-b+e,b&=b}return b}function e(a){var b=668265261;return a=61^a^a>>>16,a+=a<<3,a^=a>>>4,a*=b,a^=a>>>15}function f(){return{key:null,value:null,next:0,hashCode:0}}function g(a,b){if(0>a)throw new y;a>0&&this._initialize(a),this.comparer=b||s,this.freeCount=0,this.size=0,this.freeList=-1}var h=[1,3,7,13,31,61,127,251,509,1021,2039,4093,8191,16381,32749,65521,131071,262139,524287,1048573,2097143,4194301,8388593,16777213,33554393,67108859,134217689,268435399,536870909,1073741789,2147483647],i="no such key",j="duplicate key",k=function(){var a=0;return function(b){if(null==b)throw new Error(i);if("string"==typeof b)return c(b);if("number"==typeof b)return e(b);if("boolean"==typeof b)return b===!0?1:0;if(b instanceof Date)return e(b.valueOf());if(b instanceof RegExp)return c(b.toString());if("function"==typeof b.valueOf){var d=b.valueOf();if("number"==typeof d)return e(d);if("string"==typeof d)return c(d)}if(b.hashCode)return b.hashCode();var f=17*a++;return b.hashCode=function(){return f},f}}(),l=g.prototype;return l._initialize=function(a){var c,d=b(a);for(this.buckets=new Array(d),this.entries=new Array(d),c=0;d>c;c++)this.buckets[c]=-1,this.entries[c]=f();this.freeList=-1},l.add=function(a,b){this._insert(a,b,!0)},l._insert=function(a,b,c){this.buckets||this._initialize(0);for(var d,e=2147483647&k(a),f=e%this.buckets.length,g=this.buckets[f];g>=0;g=this.entries[g].next)if(this.entries[g].hashCode===e&&this.comparer(this.entries[g].key,a)){if(c)throw new Error(j);return void(this.entries[g].value=b)}this.freeCount>0?(d=this.freeList,this.freeList=this.entries[d].next,--this.freeCount):(this.size===this.entries.length&&(this._resize(),f=e%this.buckets.length),d=this.size,++this.size),this.entries[d].hashCode=e,this.entries[d].next=this.buckets[f],this.entries[d].key=a,this.entries[d].value=b,this.buckets[f]=d},l._resize=function(){var a=b(2*this.size),c=new Array(a);for(e=0;e<c.length;++e)c[e]=-1;var d=new Array(a);for(e=0;e<this.size;++e)d[e]=this.entries[e];for(var e=this.size;a>e;++e)d[e]=f();for(var g=0;g<this.size;++g){var h=d[g].hashCode%a;d[g].next=c[h],c[h]=g}this.buckets=c,this.entries=d},l.remove=function(a){if(this.buckets)for(var b=2147483647&k(a),c=b%this.buckets.length,d=-1,e=this.buckets[c];e>=0;e=this.entries[e].next){if(this.entries[e].hashCode===b&&this.comparer(this.entries[e].key,a))return 0>d?this.buckets[c]=this.entries[e].next:this.entries[d].next=this.entries[e].next,this.entries[e].hashCode=-1,this.entries[e].next=this.freeList,this.entries[e].key=null,this.entries[e].value=null,this.freeList=e,++this.freeCount,!0;d=e}return!1},l.clear=function(){var a,b;if(!(this.size<=0)){for(a=0,b=this.buckets.length;b>a;++a)this.buckets[a]=-1;for(a=0;a<this.size;++a)this.entries[a]=f();this.freeList=-1,this.size=0}},l._findEntry=function(a){if(this.buckets)for(var b=2147483647&k(a),c=this.buckets[b%this.buckets.length];c>=0;c=this.entries[c].next)if(this.entries[c].hashCode===b&&this.comparer(this.entries[c].key,a))return c;return-1},l.count=function(){return this.size-this.freeCount},l.tryGetValue=function(a){var b=this._findEntry(a);return b>=0?this.entries[b].value:d},l.getValues=function(){var a=0,b=[];if(this.entries)for(var c=0;c<this.size;c++)this.entries[c].hashCode>=0&&(b[a++]=this.entries[c].value);return b},l.get=function(a){var b=this._findEntry(a);if(b>=0)return this.entries[b].value;throw new Error(i)},l.set=function(a,b){this._insert(a,b,!1)},l.containskey=function(a){return this._findEntry(a)>=0},g}();n.join=function(a,b,c,d){var e=this;return new q(function(f){var g=new i,h=!1,j=!1,l=0,m=0,n=new z,o=new z;return g.add(e.subscribe(function(a){var c=l++,e=new k;n.add(c,a),g.add(e);var i,j=function(){n.remove(c)&&0===n.count()&&h&&f.onCompleted(),g.remove(e)};try{i=b(a)}catch(m){return void f.onError(m)}e.setDisposable(i.take(1).subscribe(u,f.onError.bind(f),j)),o.getValues().forEach(function(b){var c;try{c=d(a,b)}catch(e){return void f.onError(e)}f.onNext(c)})},f.onError.bind(f),function(){h=!0,(j||0===n.count())&&f.onCompleted()})),g.add(a.subscribe(function(a){var b=m++,e=new k;o.add(b,a),g.add(e);var h,i=function(){o.remove(b)&&0===o.count()&&j&&f.onCompleted(),g.remove(e)};try{h=c(a)}catch(l){return void f.onError(l)}e.setDisposable(h.take(1).subscribe(u,f.onError.bind(f),i)),n.getValues().forEach(function(b){var c;try{c=d(b,a)}catch(e){return void f.onError(e)}f.onNext(c)})},f.onError.bind(f),function(){j=!0,(h||0===o.count())&&f.onCompleted()})),g},e)},n.groupJoin=function(a,b,c,d){var e=this;return new q(function(f){function g(a){return function(b){b.onError(a)}}var h=new i,l=new j(h),n=new z,o=new z,p=0,q=0;return h.add(e.subscribe(function(a){var c=new m,e=p++;n.add(e,c);var i;try{i=d(a,r(c,l))}catch(j){return n.getValues().forEach(g(j)),void f.onError(j)}f.onNext(i),o.getValues().forEach(function(a){c.onNext(a)});var q=new k;h.add(q);var s,t=function(){n.remove(e)&&c.onCompleted(),h.remove(q)};try{s=b(a)}catch(j){return n.getValues().forEach(g(j)),void f.onError(j)}q.setDisposable(s.take(1).subscribe(u,function(a){n.getValues().forEach(g(a)),f.onError(a)},t))},function(a){n.getValues().forEach(g(a)),f.onError(a)},f.onCompleted.bind(f))),h.add(a.subscribe(function(a){var b=q++;o.add(b,a);var d=new k;h.add(d);var e,i=function(){o.remove(b),h.remove(d)};try{e=c(a)}catch(j){return n.getValues().forEach(g(j)),void f.onError(j)}d.setDisposable(e.take(1).subscribe(u,function(a){n.getValues().forEach(g(a)),f.onError(a)},i)),n.getValues().forEach(function(b){b.onNext(a)})},function(a){n.getValues().forEach(g(a)),f.onError(a)})),l},e)},n.buffer=function(){return this.window.apply(this,arguments).selectMany(function(a){return a.toArray()})},n.window=function(a,b){return 1===arguments.length&&"function"!=typeof arguments[0]?f.call(this,a):"function"==typeof a?g.call(this,a):e.call(this,a,b)},n.pairwise=function(){var a=this;return new q(function(b){var c,d=!1;return a.subscribe(function(a){d?b.onNext([c,a]):d=!0,c=a},b.onError.bind(b),b.onCompleted.bind(b))},a)},n.partition=function(a,b){return[this.filter(a,b),this.filter(function(c,d,e){return!a.call(b,c,d,e)})]},n.groupBy=function(a,b,c){return this.groupByUntil(a,b,p,c)},n.groupByUntil=function(a,b,c,d){var e=this;return b||(b=v),d||(d=s),new q(function(f){function g(a){return function(b){b.onError(a)}}var h=new z(0,d),l=new i,n=new j(l);return l.add(e.subscribe(function(d){var e;try{e=a(d)}catch(i){return h.getValues().forEach(g(i)),void f.onError(i)}var j=!1,o=h.tryGetValue(e);if(o||(o=new m,h.set(e,o),j=!0),j){var p=new A(e,o,n),q=new A(e,o);try{duration=c(q)}catch(i){return h.getValues().forEach(g(i)),void f.onError(i)}f.onNext(p);var r=new k;l.add(r);var s=function(){h.remove(e)&&o.onCompleted(),l.remove(r)};r.setDisposable(duration.take(1).subscribe(u,function(a){h.getValues().forEach(g(a)),f.onError(a)},s))}var t;try{t=b(d)}catch(i){return h.getValues().forEach(g(i)),void f.onError(i)}o.onNext(t)},function(a){h.getValues().forEach(g(a)),f.onError(a)},function(){h.getValues().forEach(function(a){a.onCompleted()}),f.onCompleted()})),n},e)};var A=function(a){function b(a){return this.underlyingObservable.subscribe(a)}function c(c,d,e){a.call(this,b),this.key=c,this.underlyingObservable=e?new q(function(a){return new i(e.getDisposable(),d.subscribe(a))}):d}return t(c,a),c}(h);return c});
3
3
  //# sourceMappingURL=rx.coincidence.map
@@ -32,7 +32,6 @@
32
32
  // Defaults
33
33
  var noop = Rx.helpers.noop = function () { },
34
34
  notDefined = Rx.helpers.notDefined = function (x) { return typeof x === 'undefined'; },
35
- isScheduler = Rx.helpers.isScheduler = function (x) { return x instanceof Rx.Scheduler; },
36
35
  identity = Rx.helpers.identity = function (x) { return x; },
37
36
  pluck = Rx.helpers.pluck = function (property) { return function (x) { return x[property]; }; },
38
37
  just = Rx.helpers.just = function (value) { return function () { return value; }; },
@@ -45,7 +44,6 @@
45
44
  asArray = Rx.helpers.asArray = function () { return Array.prototype.slice.call(arguments); },
46
45
  not = Rx.helpers.not = function (a) { return !a; },
47
46
  isFunction = Rx.helpers.isFunction = (function () {
48
-
49
47
  var isFn = function (value) {
50
48
  return typeof value == 'function' || false;
51
49
  }
@@ -56,16 +54,14 @@
56
54
  return typeof value == 'function' && toString.call(value) == '[object Function]';
57
55
  };
58
56
  }
59
-
60
57
  return isFn;
61
58
  }());
62
59
 
63
- // Errors
64
- var sequenceContainsNoElements = 'Sequence contains no elements.';
65
- var argumentOutOfRange = 'Argument out of range';
66
- var objectDisposed = 'Object has been disposed';
67
- function checkDisposed(self) { if (self.isDisposed) { throw new Error(objectDisposed); } }
68
- function cloneArray(arr) { for(var a = [], i = 0, len = arr.length; i < len; i++) { a.push(arr[i]); } return a;}
60
+ function cloneArray(arr) {
61
+ var len = arr.length, a = new Array(len);
62
+ for(var i = 0; i < len; i++) { a[i] = arr[i]; }
63
+ return a;
64
+ }
69
65
 
70
66
  Rx.config.longStackSupport = false;
71
67
  var hasStacks = false;
@@ -163,6 +159,44 @@
163
159
  if (attempt3) { return [attempt3[1], Number(attempt3[2])]; }
164
160
  }
165
161
 
162
+ var EmptyError = Rx.EmptyError = function() {
163
+ this.message = 'Sequence contains no elements.';
164
+ Error.call(this);
165
+ };
166
+ EmptyError.prototype = Error.prototype;
167
+
168
+ var ObjectDisposedError = Rx.ObjectDisposedError = function() {
169
+ this.message = 'Object has been disposed';
170
+ Error.call(this);
171
+ };
172
+ ObjectDisposedError.prototype = Error.prototype;
173
+
174
+ var ArgumentOutOfRangeError = Rx.ArgumentOutOfRangeError = function () {
175
+ this.message = 'Argument out of range';
176
+ Error.call(this);
177
+ };
178
+ ArgumentOutOfRangeError.prototype = Error.prototype;
179
+
180
+ var NotSupportedError = Rx.NotSupportedError = function (message) {
181
+ this.message = message || 'This operation is not supported';
182
+ Error.call(this);
183
+ };
184
+ NotSupportedError.prototype = Error.prototype;
185
+
186
+ var NotImplementedError = Rx.NotImplementedError = function (message) {
187
+ this.message = message || 'This operation is not implemented';
188
+ Error.call(this);
189
+ };
190
+ NotImplementedError.prototype = Error.prototype;
191
+
192
+ var notImplemented = Rx.helpers.notImplemented = function () {
193
+ throw new NotImplementedError();
194
+ };
195
+
196
+ var notSupported = Rx.helpers.notSupported = function () {
197
+ throw new NotSupportedError();
198
+ };
199
+
166
200
  // Shim in iterator support
167
201
  var $iterator$ = (typeof Symbol === 'function' && Symbol.iterator) ||
168
202
  '_es6shim_iterator_';
@@ -827,13 +861,17 @@
827
861
  * @constructor
828
862
  */
829
863
  var CompositeDisposable = Rx.CompositeDisposable = function () {
830
- var args = [];
864
+ var args = [], i, len;
831
865
  if (Array.isArray(arguments[0])) {
832
866
  args = arguments[0];
867
+ len = args.length;
833
868
  } else {
834
- var len = arguments.length;
869
+ len = arguments.length;
835
870
  args = new Array(len);
836
- for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
871
+ for(i = 0; i < len; i++) { args[i] = arguments[i]; }
872
+ }
873
+ for(i = 0; i < len; i++) {
874
+ if (!isDisposable(args[i])) { throw new TypeError('Not a disposable'); }
837
875
  }
838
876
  this.disposables = args;
839
877
  this.isDisposed = false;
@@ -920,51 +958,67 @@
920
958
  */
921
959
  var disposableEmpty = Disposable.empty = { dispose: noop };
922
960
 
923
- var SingleAssignmentDisposable = Rx.SingleAssignmentDisposable = (function () {
924
- function BooleanDisposable () {
925
- this.isDisposed = false;
926
- this.current = null;
927
- }
928
-
929
- var booleanDisposablePrototype = BooleanDisposable.prototype;
930
-
931
- /**
932
- * Gets the underlying disposable.
933
- * @return The underlying disposable.
934
- */
935
- booleanDisposablePrototype.getDisposable = function () {
936
- return this.current;
937
- };
961
+ /**
962
+ * Validates whether the given object is a disposable
963
+ * @param {Object} Object to test whether it has a dispose method
964
+ * @returns {Boolean} true if a disposable object, else false.
965
+ */
966
+ var isDisposable = Disposable.isDisposable = function (d) {
967
+ return d && isFunction(d.dispose);
968
+ };
938
969
 
939
- /**
940
- * Sets the underlying disposable.
941
- * @param {Disposable} value The new underlying disposable.
942
- */
943
- booleanDisposablePrototype.setDisposable = function (value) {
944
- var shouldDispose = this.isDisposed;
945
- if (!shouldDispose) {
946
- var old = this.current;
947
- this.current = value;
948
- }
949
- old && old.dispose();
950
- shouldDispose && value && value.dispose();
951
- };
970
+ var checkDisposed = Disposable.checkDisposed = function (disposable) {
971
+ if (disposable.isDisposed) { throw new ObjectDisposedError(); }
972
+ };
952
973
 
953
- /**
954
- * Disposes the underlying disposable as well as all future replacements.
955
- */
956
- booleanDisposablePrototype.dispose = function () {
957
- if (!this.isDisposed) {
958
- this.isDisposed = true;
959
- var old = this.current;
960
- this.current = null;
961
- }
962
- old && old.dispose();
963
- };
974
+ // Single assignment
975
+ var SingleAssignmentDisposable = Rx.SingleAssignmentDisposable = function () {
976
+ this.isDisposed = false;
977
+ this.current = null;
978
+ };
979
+ SingleAssignmentDisposable.prototype.getDisposable = function () {
980
+ return this.current;
981
+ };
982
+ SingleAssignmentDisposable.prototype.setDisposable = function (value) {
983
+ if (this.current) { throw new Error('Disposable has already been assigned'); }
984
+ var shouldDispose = this.isDisposed;
985
+ !shouldDispose && (this.current = value);
986
+ shouldDispose && value && value.dispose();
987
+ };
988
+ SingleAssignmentDisposable.prototype.dispose = function () {
989
+ if (!this.isDisposed) {
990
+ this.isDisposed = true;
991
+ var old = this.current;
992
+ this.current = null;
993
+ }
994
+ old && old.dispose();
995
+ };
964
996
 
965
- return BooleanDisposable;
966
- }());
967
- var SerialDisposable = Rx.SerialDisposable = SingleAssignmentDisposable;
997
+ // Multiple assignment disposable
998
+ var SerialDisposable = Rx.SerialDisposable = function () {
999
+ this.isDisposed = false;
1000
+ this.current = null;
1001
+ };
1002
+ SerialDisposable.prototype.getDisposable = function () {
1003
+ return this.current;
1004
+ };
1005
+ SerialDisposable.prototype.setDisposable = function (value) {
1006
+ var shouldDispose = this.isDisposed;
1007
+ if (!shouldDispose) {
1008
+ var old = this.current;
1009
+ this.current = value;
1010
+ }
1011
+ old && old.dispose();
1012
+ shouldDispose && value && value.dispose();
1013
+ };
1014
+ SerialDisposable.prototype.dispose = function () {
1015
+ if (!this.isDisposed) {
1016
+ this.isDisposed = true;
1017
+ var old = this.current;
1018
+ this.current = null;
1019
+ }
1020
+ old && old.dispose();
1021
+ };
968
1022
 
969
1023
  /**
970
1024
  * Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed.
@@ -1076,6 +1130,11 @@
1076
1130
  this._scheduleAbsolute = scheduleAbsolute;
1077
1131
  }
1078
1132
 
1133
+ /** Determines whether the given object is a scheduler */
1134
+ Scheduler.isScheduler = function (s) {
1135
+ return s instanceof Scheduler;
1136
+ }
1137
+
1079
1138
  function invokeAction(scheduler, action) {
1080
1139
  action();
1081
1140
  return disposableEmpty;
@@ -1160,12 +1219,14 @@
1160
1219
  return Scheduler;
1161
1220
  }());
1162
1221
 
1163
- var normalizeTime = Scheduler.normalize;
1222
+ var normalizeTime = Scheduler.normalize, isScheduler = Scheduler.isScheduler;
1164
1223
 
1165
1224
  (function (schedulerProto) {
1225
+
1166
1226
  function invokeRecImmediate(scheduler, pair) {
1167
- var state = pair.first, action = pair.second, group = new CompositeDisposable(),
1168
- recursiveAction = function (state1) {
1227
+ var state = pair[0], action = pair[1], group = new CompositeDisposable();
1228
+
1229
+ function recursiveAction(state1) {
1169
1230
  action(state1, function (state2) {
1170
1231
  var isAdded = false, isDone = false,
1171
1232
  d = scheduler.scheduleWithState(state2, function (scheduler1, state3) {
@@ -1182,14 +1243,15 @@
1182
1243
  isAdded = true;
1183
1244
  }
1184
1245
  });
1185
- };
1246
+ }
1247
+
1186
1248
  recursiveAction(state);
1187
1249
  return group;
1188
1250
  }
1189
1251
 
1190
1252
  function invokeRecDate(scheduler, pair, method) {
1191
- var state = pair.first, action = pair.second, group = new CompositeDisposable(),
1192
- recursiveAction = function (state1) {
1253
+ var state = pair[0], action = pair[1], group = new CompositeDisposable();
1254
+ function recursiveAction(state1) {
1193
1255
  action(state1, function (state2, dueTime1) {
1194
1256
  var isAdded = false, isDone = false,
1195
1257
  d = scheduler[method](state2, dueTime1, function (scheduler1, state3) {
@@ -1232,7 +1294,7 @@
1232
1294
  * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort).
1233
1295
  */
1234
1296
  schedulerProto.scheduleRecursiveWithState = function (state, action) {
1235
- return this.scheduleWithState({ first: state, second: action }, invokeRecImmediate);
1297
+ return this.scheduleWithState([state, action], invokeRecImmediate);
1236
1298
  };
1237
1299
 
1238
1300
  /**
@@ -1253,7 +1315,7 @@
1253
1315
  * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort).
1254
1316
  */
1255
1317
  schedulerProto.scheduleRecursiveWithRelativeAndState = function (state, dueTime, action) {
1256
- return this._scheduleRelative({ first: state, second: action }, dueTime, function (s, p) {
1318
+ return this._scheduleRelative([state, action], dueTime, function (s, p) {
1257
1319
  return invokeRecDate(s, p, 'scheduleWithRelativeAndState');
1258
1320
  });
1259
1321
  };
@@ -1276,7 +1338,7 @@
1276
1338
  * @returns {Disposable} The disposable object used to cancel the scheduled action (best effort).
1277
1339
  */
1278
1340
  schedulerProto.scheduleRecursiveWithAbsoluteAndState = function (state, dueTime, action) {
1279
- return this._scheduleAbsolute({ first: state, second: action }, dueTime, function (s, p) {
1341
+ return this._scheduleAbsolute([state, action], dueTime, function (s, p) {
1280
1342
  return invokeRecDate(s, p, 'scheduleWithAbsoluteAndState');
1281
1343
  });
1282
1344
  };
@@ -1302,16 +1364,10 @@
1302
1364
  * @returns {Disposable} The disposable object used to cancel the scheduled recurring action (best effort).
1303
1365
  */
1304
1366
  Scheduler.prototype.schedulePeriodicWithState = function(state, period, action) {
1305
- if (typeof root.setInterval === 'undefined') { throw new Error('Periodic scheduling not supported.'); }
1306
- var s = state;
1307
-
1308
- var id = root.setInterval(function () {
1309
- s = action(s);
1310
- }, period);
1311
-
1312
- return disposableCreate(function () {
1313
- root.clearInterval(id);
1314
- });
1367
+ if (typeof root.setInterval === 'undefined') { throw new NotSupportedError(); }
1368
+ period = normalizeTime(period);
1369
+ var s = state, id = root.setInterval(function () { s = action(s); }, period);
1370
+ return disposableCreate(function () { root.clearInterval(id); });
1315
1371
  };
1316
1372
 
1317
1373
  }(Scheduler.prototype));
@@ -1358,10 +1414,7 @@
1358
1414
 
1359
1415
  /** Gets a scheduler that schedules work immediately on the current thread. */
1360
1416
  var immediateScheduler = Scheduler.immediate = (function () {
1361
-
1362
1417
  function scheduleNow(state, action) { return action(this, state); }
1363
- function notSupported() { throw new Error('Not supported'); }
1364
-
1365
1418
  return new Scheduler(defaultNow, scheduleNow, notSupported, notSupported);
1366
1419
  }());
1367
1420
 
@@ -1371,12 +1424,10 @@
1371
1424
  var currentThreadScheduler = Scheduler.currentThread = (function () {
1372
1425
  var queue;
1373
1426
 
1374
- function runTrampoline (q) {
1375
- while (q.length > 0) {
1376
- var item = q.dequeue();
1377
- if (!item.isCancelled()) {
1378
- !item.isCancelled() && item.invoke();
1379
- }
1427
+ function runTrampoline () {
1428
+ while (queue.length > 0) {
1429
+ var item = queue.dequeue();
1430
+ !item.isCancelled() && item.invoke();
1380
1431
  }
1381
1432
  }
1382
1433
 
@@ -1386,44 +1437,36 @@
1386
1437
  if (!queue) {
1387
1438
  queue = new PriorityQueue(4);
1388
1439
  queue.enqueue(si);
1389
- try {
1390
- runTrampoline(queue);
1391
- } catch (e) {
1392
- throw e;
1393
- } finally {
1394
- queue = null;
1395
- }
1440
+
1441
+ var result = tryCatch(runTrampoline)();
1442
+ queue = null;
1443
+ if (result === errorObj) { return thrower(result.e); }
1396
1444
  } else {
1397
1445
  queue.enqueue(si);
1398
1446
  }
1399
1447
  return si.disposable;
1400
1448
  }
1401
1449
 
1402
- function notSupported() { throw new Error('Not supported'); }
1403
-
1404
1450
  var currentScheduler = new Scheduler(defaultNow, scheduleNow, notSupported, notSupported);
1405
-
1406
1451
  currentScheduler.scheduleRequired = function () { return !queue; };
1407
- currentScheduler.ensureTrampoline = function (action) {
1408
- if (!queue) { this.schedule(action); } else { action(); }
1409
- };
1410
1452
 
1411
1453
  return currentScheduler;
1412
1454
  }());
1413
1455
 
1414
- var scheduleMethod, clearMethod = noop;
1456
+ var scheduleMethod, clearMethod;
1457
+
1415
1458
  var localTimer = (function () {
1416
1459
  var localSetTimeout, localClearTimeout = noop;
1417
- if ('WScript' in this) {
1460
+ if (!!root.setTimeout) {
1461
+ localSetTimeout = root.setTimeout;
1462
+ localClearTimeout = root.clearTimeout;
1463
+ } else if (!!root.WScript) {
1418
1464
  localSetTimeout = function (fn, time) {
1419
- WScript.Sleep(time);
1465
+ root.WScript.Sleep(time);
1420
1466
  fn();
1421
1467
  };
1422
- } else if (!!root.setTimeout) {
1423
- localSetTimeout = root.setTimeout;
1424
- localClearTimeout = root.clearTimeout;
1425
1468
  } else {
1426
- throw new Error('No concurrency detected!');
1469
+ throw new NotSupportedError();
1427
1470
  }
1428
1471
 
1429
1472
  return {
@@ -1436,6 +1479,27 @@
1436
1479
 
1437
1480
  (function () {
1438
1481
 
1482
+ var nextHandle = 1, tasksByHandle = {}, currentlyRunning = false;
1483
+
1484
+ clearMethod = function (handle) {
1485
+ delete tasksByHandle[handle];
1486
+ };
1487
+
1488
+ function runTask(handle) {
1489
+ if (currentlyRunning) {
1490
+ localSetTimeout(function () { runTask(handle) }, 0);
1491
+ } else {
1492
+ var task = tasksByHandle[handle];
1493
+ if (task) {
1494
+ currentlyRunning = true;
1495
+ var result = tryCatch(task)();
1496
+ clearMethod(handle);
1497
+ currentlyRunning = false;
1498
+ if (result === errorObj) { return thrower(result.e); }
1499
+ }
1500
+ }
1501
+ }
1502
+
1439
1503
  var reNative = RegExp('^' +
1440
1504
  String(toString)
1441
1505
  .replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
@@ -1443,15 +1507,12 @@
1443
1507
  );
1444
1508
 
1445
1509
  var setImmediate = typeof (setImmediate = freeGlobal && moduleExports && freeGlobal.setImmediate) == 'function' &&
1446
- !reNative.test(setImmediate) && setImmediate,
1447
- clearImmediate = typeof (clearImmediate = freeGlobal && moduleExports && freeGlobal.clearImmediate) == 'function' &&
1448
- !reNative.test(clearImmediate) && clearImmediate;
1510
+ !reNative.test(setImmediate) && setImmediate;
1449
1511
 
1450
1512
  function postMessageSupported () {
1451
1513
  // Ensure not in a worker
1452
1514
  if (!root.postMessage || root.importScripts) { return false; }
1453
- var isAsync = false,
1454
- oldHandler = root.onmessage;
1515
+ var isAsync = false, oldHandler = root.onmessage;
1455
1516
  // Test for async
1456
1517
  root.onmessage = function () { isAsync = true; };
1457
1518
  root.postMessage('', '*');
@@ -1461,85 +1522,96 @@
1461
1522
  }
1462
1523
 
1463
1524
  // Use in order, setImmediate, nextTick, postMessage, MessageChannel, script readystatechanged, setTimeout
1464
- if (typeof setImmediate === 'function') {
1465
- scheduleMethod = setImmediate;
1466
- clearMethod = clearImmediate;
1525
+ if (isFunction(setImmediate)) {
1526
+ scheduleMethod = function (action) {
1527
+ var id = nextHandle++;
1528
+ tasksByHandle[id] = action;
1529
+ setImmediate(function () { runTask(id); });
1530
+
1531
+ return id;
1532
+ };
1467
1533
  } else if (typeof process !== 'undefined' && {}.toString.call(process) === '[object process]') {
1468
- scheduleMethod = process.nextTick;
1534
+ scheduleMethod = function (action) {
1535
+ var id = nextHandle++;
1536
+ tasksByHandle[id] = action;
1537
+ process.nextTick(function () { runTask(id); });
1538
+
1539
+ return id;
1540
+ };
1469
1541
  } else if (postMessageSupported()) {
1470
- var MSG_PREFIX = 'ms.rx.schedule' + Math.random(),
1471
- tasks = {},
1472
- taskId = 0;
1542
+ var MSG_PREFIX = 'ms.rx.schedule' + Math.random();
1473
1543
 
1474
- var onGlobalPostMessage = function (event) {
1544
+ function onGlobalPostMessage(event) {
1475
1545
  // Only if we're a match to avoid any other global events
1476
1546
  if (typeof event.data === 'string' && event.data.substring(0, MSG_PREFIX.length) === MSG_PREFIX) {
1477
- var handleId = event.data.substring(MSG_PREFIX.length),
1478
- action = tasks[handleId];
1479
- action();
1480
- delete tasks[handleId];
1547
+ runTask(event.data.substring(MSG_PREFIX.length));
1481
1548
  }
1482
1549
  }
1483
1550
 
1484
1551
  if (root.addEventListener) {
1485
1552
  root.addEventListener('message', onGlobalPostMessage, false);
1553
+ } else if (root.attachEvent) {
1554
+ root.attachEvent('onmessage', onGlobalPostMessage);
1486
1555
  } else {
1487
- root.attachEvent('onmessage', onGlobalPostMessage, false);
1556
+ root.onmessage = onGlobalPostMessage;
1488
1557
  }
1489
1558
 
1490
1559
  scheduleMethod = function (action) {
1491
- var currentId = taskId++;
1492
- tasks[currentId] = action;
1560
+ var id = nextHandle++;
1561
+ tasksByHandle[id] = action;
1493
1562
  root.postMessage(MSG_PREFIX + currentId, '*');
1563
+ return id;
1494
1564
  };
1495
1565
  } else if (!!root.MessageChannel) {
1496
- var channel = new root.MessageChannel(),
1497
- channelTasks = {},
1498
- channelTaskId = 0;
1566
+ var channel = new root.MessageChannel();
1499
1567
 
1500
- channel.port1.onmessage = function (event) {
1501
- var id = event.data,
1502
- action = channelTasks[id];
1503
- action();
1504
- delete channelTasks[id];
1505
- };
1568
+ channel.port1.onmessage = function (e) { runTask(e.data); };
1506
1569
 
1507
1570
  scheduleMethod = function (action) {
1508
- var id = channelTaskId++;
1509
- channelTasks[id] = action;
1571
+ var id = nextHandle++;
1572
+ tasksByHandle[id] = action;
1510
1573
  channel.port2.postMessage(id);
1574
+ return id;
1511
1575
  };
1512
1576
  } else if ('document' in root && 'onreadystatechange' in root.document.createElement('script')) {
1513
1577
 
1514
1578
  scheduleMethod = function (action) {
1515
1579
  var scriptElement = root.document.createElement('script');
1580
+ var id = nextHandle++;
1581
+ tasksByHandle[id] = action;
1582
+
1516
1583
  scriptElement.onreadystatechange = function () {
1517
- action();
1584
+ runTask(id);
1518
1585
  scriptElement.onreadystatechange = null;
1519
1586
  scriptElement.parentNode.removeChild(scriptElement);
1520
1587
  scriptElement = null;
1521
1588
  };
1522
1589
  root.document.documentElement.appendChild(scriptElement);
1590
+ return id;
1523
1591
  };
1524
1592
 
1525
1593
  } else {
1526
- scheduleMethod = function (action) { return localSetTimeout(action, 0); };
1527
- clearMethod = localClearTimeout;
1594
+ scheduleMethod = function (action) {
1595
+ var id = nextHandle++;
1596
+ tasksByHandle[id] = action;
1597
+ localSetTimeout(function () {
1598
+ runTask(id);
1599
+ }, 0);
1600
+
1601
+ return id;
1602
+ };
1528
1603
  }
1529
1604
  }());
1530
1605
 
1531
1606
  /**
1532
1607
  * Gets a scheduler that schedules work via a timed callback based upon platform.
1533
1608
  */
1534
- var timeoutScheduler = Scheduler.timeout = (function () {
1609
+ var timeoutScheduler = Scheduler.timeout = Scheduler['default'] = (function () {
1535
1610
 
1536
1611
  function scheduleNow(state, action) {
1537
- var scheduler = this,
1538
- disposable = new SingleAssignmentDisposable();
1612
+ var scheduler = this, disposable = new SingleAssignmentDisposable();
1539
1613
  var id = scheduleMethod(function () {
1540
- if (!disposable.isDisposed) {
1541
- disposable.setDisposable(action(scheduler, state));
1542
- }
1614
+ !disposable.isDisposed && disposable.setDisposable(action(scheduler, state));
1543
1615
  });
1544
1616
  return new CompositeDisposable(disposable, disposableCreate(function () {
1545
1617
  clearMethod(id);
@@ -1547,16 +1619,10 @@
1547
1619
  }
1548
1620
 
1549
1621
  function scheduleRelative(state, dueTime, action) {
1550
- var scheduler = this,
1551
- dt = Scheduler.normalize(dueTime);
1552
- if (dt === 0) {
1553
- return scheduler.scheduleWithState(state, action);
1554
- }
1555
- var disposable = new SingleAssignmentDisposable();
1622
+ var scheduler = this, dt = Scheduler.normalize(dueTime), disposable = new SingleAssignmentDisposable();
1623
+ if (dt === 0) { return scheduler.scheduleWithState(state, action); }
1556
1624
  var id = localSetTimeout(function () {
1557
- if (!disposable.isDisposed) {
1558
- disposable.setDisposable(action(scheduler, state));
1559
- }
1625
+ !disposable.isDisposed && disposable.setDisposable(action(scheduler, state));
1560
1626
  }, dt);
1561
1627
  return new CompositeDisposable(disposable, disposableCreate(function () {
1562
1628
  localClearTimeout(id);
@@ -1646,9 +1712,13 @@
1646
1712
  * Represents a notification to an observer.
1647
1713
  */
1648
1714
  var Notification = Rx.Notification = (function () {
1649
- function Notification(kind, hasValue) {
1650
- this.hasValue = hasValue == null ? false : hasValue;
1715
+ function Notification(kind, value, exception, accept, acceptObservable, toString) {
1651
1716
  this.kind = kind;
1717
+ this.value = value;
1718
+ this.exception = exception;
1719
+ this._accept = accept;
1720
+ this._acceptObservable = acceptObservable;
1721
+ this.toString = toString;
1652
1722
  }
1653
1723
 
1654
1724
  /**
@@ -1674,10 +1744,10 @@
1674
1744
  * @returns {Observable} The observable sequence that surfaces the behavior of the notification upon subscription.
1675
1745
  */
1676
1746
  Notification.prototype.toObservable = function (scheduler) {
1677
- var notification = this;
1747
+ var self = this;
1678
1748
  isScheduler(scheduler) || (scheduler = immediateScheduler);
1679
1749
  return new AnonymousObservable(function (observer) {
1680
- return scheduler.schedule(function () {
1750
+ return scheduler.scheduleWithState(self, function (_, notification) {
1681
1751
  notification._acceptObservable(observer);
1682
1752
  notification.kind === 'N' && observer.onCompleted();
1683
1753
  });
@@ -1693,18 +1763,12 @@
1693
1763
  * @returns {Notification} The OnNext notification containing the value.
1694
1764
  */
1695
1765
  var notificationCreateOnNext = Notification.createOnNext = (function () {
1696
-
1697
- function _accept (onNext) { return onNext(this.value); }
1766
+ function _accept(onNext) { return onNext(this.value); }
1698
1767
  function _acceptObservable(observer) { return observer.onNext(this.value); }
1699
- function toString () { return 'OnNext(' + this.value + ')'; }
1768
+ function toString() { return 'OnNext(' + this.value + ')'; }
1700
1769
 
1701
1770
  return function (value) {
1702
- var notification = new Notification('N', true);
1703
- notification.value = value;
1704
- notification._accept = _accept;
1705
- notification._acceptObservable = _acceptObservable;
1706
- notification.toString = toString;
1707
- return notification;
1771
+ return new Notification('N', value, null, _accept, _acceptObservable, toString);
1708
1772
  };
1709
1773
  }());
1710
1774
 
@@ -1714,18 +1778,12 @@
1714
1778
  * @returns {Notification} The OnError notification containing the exception.
1715
1779
  */
1716
1780
  var notificationCreateOnError = Notification.createOnError = (function () {
1717
-
1718
1781
  function _accept (onNext, onError) { return onError(this.exception); }
1719
1782
  function _acceptObservable(observer) { return observer.onError(this.exception); }
1720
1783
  function toString () { return 'OnError(' + this.exception + ')'; }
1721
1784
 
1722
1785
  return function (e) {
1723
- var notification = new Notification('E');
1724
- notification.exception = e;
1725
- notification._accept = _accept;
1726
- notification._acceptObservable = _acceptObservable;
1727
- notification.toString = toString;
1728
- return notification;
1786
+ return new Notification('E', null, e, _accept, _acceptObservable, toString);
1729
1787
  };
1730
1788
  }());
1731
1789
 
@@ -1734,17 +1792,12 @@
1734
1792
  * @returns {Notification} The OnCompleted notification.
1735
1793
  */
1736
1794
  var notificationCreateOnCompleted = Notification.createOnCompleted = (function () {
1737
-
1738
1795
  function _accept (onNext, onError, onCompleted) { return onCompleted(); }
1739
1796
  function _acceptObservable(observer) { return observer.onCompleted(); }
1740
1797
  function toString () { return 'OnCompleted()'; }
1741
1798
 
1742
1799
  return function () {
1743
- var notification = new Notification('C');
1744
- notification._accept = _accept;
1745
- notification._acceptObservable = _acceptObservable;
1746
- notification.toString = toString;
1747
- return notification;
1800
+ return new Notification('C', null, null, _accept, _acceptObservable, toString);
1748
1801
  };
1749
1802
  }());
1750
1803
 
@@ -2019,10 +2072,6 @@
2019
2072
  __super__.call(this);
2020
2073
  }
2021
2074
 
2022
- function notImplemented() {
2023
- throw new Error('Method not implemented');
2024
- }
2025
-
2026
2075
  // Must be implemented by other observers
2027
2076
  AbstractObserver.prototype.next = notImplemented;
2028
2077
  AbstractObserver.prototype.error = notImplemented;
@@ -2122,58 +2171,46 @@
2122
2171
  return AnonymousObserver;
2123
2172
  }(AbstractObserver));
2124
2173
 
2125
- var CheckedObserver = (function (_super) {
2126
- inherits(CheckedObserver, _super);
2174
+ var CheckedObserver = (function (__super__) {
2175
+ inherits(CheckedObserver, __super__);
2127
2176
 
2128
- function CheckedObserver(observer) {
2129
- _super.call(this);
2130
- this._observer = observer;
2131
- this._state = 0; // 0 - idle, 1 - busy, 2 - done
2132
- }
2177
+ function CheckedObserver(observer) {
2178
+ __super__.call(this);
2179
+ this._observer = observer;
2180
+ this._state = 0; // 0 - idle, 1 - busy, 2 - done
2181
+ }
2133
2182
 
2134
- var CheckedObserverPrototype = CheckedObserver.prototype;
2183
+ var CheckedObserverPrototype = CheckedObserver.prototype;
2135
2184
 
2136
- CheckedObserverPrototype.onNext = function (value) {
2137
- this.checkAccess();
2138
- try {
2139
- this._observer.onNext(value);
2140
- } catch (e) {
2141
- throw e;
2142
- } finally {
2143
- this._state = 0;
2144
- }
2145
- };
2185
+ CheckedObserverPrototype.onNext = function (value) {
2186
+ this.checkAccess();
2187
+ var res = tryCatch(this._observer.onNext).call(this._observer, value);
2188
+ this._state = 0;
2189
+ res === errorObj && thrower(res.e);
2190
+ };
2146
2191
 
2147
- CheckedObserverPrototype.onError = function (err) {
2148
- this.checkAccess();
2149
- try {
2150
- this._observer.onError(err);
2151
- } catch (e) {
2152
- throw e;
2153
- } finally {
2154
- this._state = 2;
2155
- }
2156
- };
2192
+ CheckedObserverPrototype.onError = function (err) {
2193
+ this.checkAccess();
2194
+ var res = tryCatch(this._observer.onError).call(this._observer, err);
2195
+ this._state = 2;
2196
+ res === errorObj && thrower(res.e);
2197
+ };
2157
2198
 
2158
- CheckedObserverPrototype.onCompleted = function () {
2159
- this.checkAccess();
2160
- try {
2161
- this._observer.onCompleted();
2162
- } catch (e) {
2163
- throw e;
2164
- } finally {
2165
- this._state = 2;
2166
- }
2167
- };
2199
+ CheckedObserverPrototype.onCompleted = function () {
2200
+ this.checkAccess();
2201
+ var res = tryCatch(this._observer.onCompleted).call(this._observer);
2202
+ this._state = 2;
2203
+ res === errorObj && thrower(res.e);
2204
+ };
2168
2205
 
2169
- CheckedObserverPrototype.checkAccess = function () {
2170
- if (this._state === 1) { throw new Error('Re-entrancy detected'); }
2171
- if (this._state === 2) { throw new Error('Observer completed'); }
2172
- if (this._state === 0) { this._state = 1; }
2173
- };
2206
+ CheckedObserverPrototype.checkAccess = function () {
2207
+ if (this._state === 1) { throw new Error('Re-entrancy detected'); }
2208
+ if (this._state === 2) { throw new Error('Observer completed'); }
2209
+ if (this._state === 0) { this._state = 1; }
2210
+ };
2174
2211
 
2175
- return CheckedObserver;
2176
- }(Observer));
2212
+ return CheckedObserver;
2213
+ }(Observer));
2177
2214
 
2178
2215
  var ScheduledObserver = Rx.internals.ScheduledObserver = (function (__super__) {
2179
2216
  inherits(ScheduledObserver, __super__);
@@ -2350,25 +2387,21 @@
2350
2387
  })();
2351
2388
 
2352
2389
  var ObservableBase = Rx.ObservableBase = (function (__super__) {
2390
+ inherits(ObservableBase, __super__);
2353
2391
 
2354
- inherits(ObservableBase, __super__);
2355
-
2356
- // Fix subscriber to check for undefined or function returned to decorate as Disposable
2357
- function fixSubscriber(subscriber) {
2358
- if (subscriber && typeof subscriber.dispose === 'function') { return subscriber; }
2359
-
2360
- return typeof subscriber === 'function' ?
2361
- disposableCreate(subscriber) :
2362
- disposableEmpty;
2392
+ function fixSubscriber(subscriber) {
2393
+ return subscriber && isFunction(subscriber.dispose) ? subscriber :
2394
+ isFunction(subscriber) ? disposableCreate(subscriber) : disposableEmpty;
2363
2395
  }
2364
2396
 
2365
2397
  function setDisposable(s, state) {
2366
2398
  var ado = state[0], self = state[1];
2367
- try {
2368
- ado.setDisposable(fixSubscriber(self.subscribeCore(ado)));
2369
- } catch (e) {
2370
- if (!ado.fail(e)) { throw e; }
2399
+ var sub = tryCatch(self.subscribeCore).call(self, ado);
2400
+
2401
+ if (sub === errorObj) {
2402
+ if(!ado.fail(errorObj.e)) { return thrower(errorObj.e); }
2371
2403
  }
2404
+ ado.setDisposable(fixSubscriber(sub));
2372
2405
  }
2373
2406
 
2374
2407
  function subscribe(observer) {
@@ -2379,7 +2412,6 @@
2379
2412
  } else {
2380
2413
  setDisposable(null, state);
2381
2414
  }
2382
-
2383
2415
  return ado;
2384
2416
  }
2385
2417
 
@@ -2387,12 +2419,9 @@
2387
2419
  __super__.call(this, subscribe);
2388
2420
  }
2389
2421
 
2390
- ObservableBase.prototype.subscribeCore = function(observer) {
2391
- throw new Error('Not implemeneted');
2392
- }
2422
+ ObservableBase.prototype.subscribeCore = notImplemented;
2393
2423
 
2394
2424
  return ObservableBase;
2395
-
2396
2425
  }(Observable));
2397
2426
 
2398
2427
  /**
@@ -2466,7 +2495,7 @@
2466
2495
  */
2467
2496
  observableProto.toPromise = function (promiseCtor) {
2468
2497
  promiseCtor || (promiseCtor = Rx.config.Promise);
2469
- if (!promiseCtor) { throw new TypeError('Promise type not provided nor in Rx.config.Promise'); }
2498
+ if (!promiseCtor) { throw new NotSupportedError('Promise type not provided nor in Rx.config.Promise'); }
2470
2499
  var source = this;
2471
2500
  return new promiseCtor(function (resolve, reject) {
2472
2501
  // No cancellation can be done
@@ -2566,6 +2595,34 @@
2566
2595
  });
2567
2596
  };
2568
2597
 
2598
+ var EmptyObservable = (function(__super__) {
2599
+ inherits(EmptyObservable, __super__);
2600
+ function EmptyObservable(scheduler) {
2601
+ this.scheduler = scheduler;
2602
+ __super__.call(this);
2603
+ }
2604
+
2605
+ EmptyObservable.prototype.subscribeCore = function (observer) {
2606
+ var sink = new EmptySink(observer, this);
2607
+ return sink.run();
2608
+ };
2609
+
2610
+ function EmptySink(observer, parent) {
2611
+ this.observer = observer;
2612
+ this.parent = parent;
2613
+ }
2614
+
2615
+ function scheduleItem(s, state) {
2616
+ state.onCompleted();
2617
+ }
2618
+
2619
+ EmptySink.prototype.run = function () {
2620
+ return this.parent.scheduler.scheduleWithState(this.observer, scheduleItem);
2621
+ };
2622
+
2623
+ return EmptyObservable;
2624
+ }(ObservableBase));
2625
+
2569
2626
  /**
2570
2627
  * Returns an empty observable sequence, using the specified scheduler to send out the single OnCompleted message.
2571
2628
  *
@@ -2577,11 +2634,7 @@
2577
2634
  */
2578
2635
  var observableEmpty = Observable.empty = function (scheduler) {
2579
2636
  isScheduler(scheduler) || (scheduler = immediateScheduler);
2580
- return new AnonymousObservable(function (observer) {
2581
- return scheduler.schedule(function () {
2582
- observer.onCompleted();
2583
- });
2584
- });
2637
+ return new EmptyObservable(scheduler);
2585
2638
  };
2586
2639
 
2587
2640
  var FromObservable = (function(__super__) {
@@ -2753,7 +2806,7 @@
2753
2806
  inherits(FromArrayObservable, __super__);
2754
2807
  function FromArrayObservable(args, scheduler) {
2755
2808
  this.args = args;
2756
- this.scheduler = scheduler || currentThreadScheduler;
2809
+ this.scheduler = scheduler;
2757
2810
  __super__.call(this);
2758
2811
  }
2759
2812
 
@@ -2791,6 +2844,7 @@
2791
2844
  * @returns {Observable} The observable sequence whose elements are pulled from the given enumerable sequence.
2792
2845
  */
2793
2846
  var observableFromArray = Observable.fromArray = function (array, scheduler) {
2847
+ isScheduler(scheduler) || (scheduler = currentThreadScheduler);
2794
2848
  return new FromArrayObservable(array, scheduler)
2795
2849
  };
2796
2850
 
@@ -2809,9 +2863,9 @@
2809
2863
  */
2810
2864
  Observable.generate = function (initialState, condition, iterate, resultSelector, scheduler) {
2811
2865
  isScheduler(scheduler) || (scheduler = currentThreadScheduler);
2812
- return new AnonymousObservable(function (observer) {
2813
- var first = true, state = initialState;
2814
- return scheduler.scheduleRecursive(function (self) {
2866
+ return new AnonymousObservable(function (o) {
2867
+ var first = true;
2868
+ return scheduler.scheduleRecursiveWithState(initialState, function (state, self) {
2815
2869
  var hasResult, result;
2816
2870
  try {
2817
2871
  if (first) {
@@ -2820,34 +2874,43 @@
2820
2874
  state = iterate(state);
2821
2875
  }
2822
2876
  hasResult = condition(state);
2823
- if (hasResult) {
2824
- result = resultSelector(state);
2825
- }
2826
- } catch (exception) {
2827
- observer.onError(exception);
2828
- return;
2877
+ hasResult && (result = resultSelector(state));
2878
+ } catch (e) {
2879
+ return o.onError(e);
2829
2880
  }
2830
2881
  if (hasResult) {
2831
- observer.onNext(result);
2832
- self();
2882
+ o.onNext(result);
2883
+ self(state);
2833
2884
  } else {
2834
- observer.onCompleted();
2885
+ o.onCompleted();
2835
2886
  }
2836
2887
  });
2837
2888
  });
2838
2889
  };
2839
2890
 
2891
+ var NeverObservable = (function(__super__) {
2892
+ inherits(NeverObservable, __super__);
2893
+ function NeverObservable() {
2894
+ __super__.call(this);
2895
+ }
2896
+
2897
+ NeverObservable.prototype.subscribeCore = function (observer) {
2898
+ return disposableEmpty;
2899
+ };
2900
+
2901
+ return NeverObservable;
2902
+ }(ObservableBase));
2903
+
2840
2904
  /**
2841
- * Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins).
2905
+ * Returns a non-terminating observable sequence, which can be used to denote an infinite duration (e.g. when using reactive joins).
2842
2906
  * @returns {Observable} An observable sequence whose observers will never get called.
2843
2907
  */
2844
2908
  var observableNever = Observable.never = function () {
2845
- return new AnonymousObservable(function () {
2846
- return disposableEmpty;
2847
- });
2909
+ return new NeverObservable();
2848
2910
  };
2849
2911
 
2850
2912
  function observableOf (scheduler, array) {
2913
+ isScheduler(scheduler) || (scheduler = currentThreadScheduler);
2851
2914
  return new FromArrayObservable(array, scheduler);
2852
2915
  }
2853
2916
 
@@ -2858,7 +2921,7 @@
2858
2921
  Observable.of = function () {
2859
2922
  var len = arguments.length, args = new Array(len);
2860
2923
  for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
2861
- return new FromArrayObservable(args);
2924
+ return new FromArrayObservable(args, currentThreadScheduler);
2862
2925
  };
2863
2926
 
2864
2927
  /**
@@ -2872,6 +2935,43 @@
2872
2935
  return new FromArrayObservable(args, scheduler);
2873
2936
  };
2874
2937
 
2938
+ var PairsObservable = (function(__super__) {
2939
+ inherits(PairsObservable, __super__);
2940
+ function PairsObservable(obj, scheduler) {
2941
+ this.obj = obj;
2942
+ this.keys = Object.keys(obj);
2943
+ this.scheduler = scheduler;
2944
+ __super__.call(this);
2945
+ }
2946
+
2947
+ PairsObservable.prototype.subscribeCore = function (observer) {
2948
+ var sink = new PairsSink(observer, this);
2949
+ return sink.run();
2950
+ };
2951
+
2952
+ return PairsObservable;
2953
+ }(ObservableBase));
2954
+
2955
+ function PairsSink(observer, parent) {
2956
+ this.observer = observer;
2957
+ this.parent = parent;
2958
+ }
2959
+
2960
+ PairsSink.prototype.run = function () {
2961
+ var observer = this.observer, obj = this.parent.obj, keys = this.parent.keys, len = keys.length;
2962
+ function loopRecursive(i, recurse) {
2963
+ if (i < len) {
2964
+ var key = keys[i];
2965
+ observer.onNext([key, obj[key]]);
2966
+ recurse(i + 1);
2967
+ } else {
2968
+ observer.onCompleted();
2969
+ }
2970
+ }
2971
+
2972
+ return this.parent.scheduler.scheduleRecursiveWithState(0, loopRecursive);
2973
+ };
2974
+
2875
2975
  /**
2876
2976
  * Convert an object into an observable sequence of [key, value] pairs.
2877
2977
  * @param {Object} obj The object to inspect.
@@ -2879,19 +2979,8 @@
2879
2979
  * @returns {Observable} An observable sequence of [key, value] pairs from the object.
2880
2980
  */
2881
2981
  Observable.pairs = function (obj, scheduler) {
2882
- scheduler || (scheduler = Rx.Scheduler.currentThread);
2883
- return new AnonymousObservable(function (observer) {
2884
- var keys = Object.keys(obj), len = keys.length;
2885
- return scheduler.scheduleRecursiveWithState(0, function (idx, self) {
2886
- if (idx < len) {
2887
- var key = keys[idx];
2888
- observer.onNext([key, obj[key]]);
2889
- self(idx + 1);
2890
- } else {
2891
- observer.onCompleted();
2892
- }
2893
- });
2894
- });
2982
+ scheduler || (scheduler = currentThreadScheduler);
2983
+ return new PairsObservable(obj, scheduler);
2895
2984
  };
2896
2985
 
2897
2986
  var RangeObservable = (function(__super__) {
@@ -2946,14 +3035,44 @@
2946
3035
  return new RangeObservable(start, count, scheduler);
2947
3036
  };
2948
3037
 
3038
+ var RepeatObservable = (function(__super__) {
3039
+ inherits(RepeatObservable, __super__);
3040
+ function RepeatObservable(value, repeatCount, scheduler) {
3041
+ this.value = value;
3042
+ this.repeatCount = repeatCount == null ? -1 : repeatCount;
3043
+ this.scheduler = scheduler;
3044
+ __super__.call(this);
3045
+ }
3046
+
3047
+ RepeatObservable.prototype.subscribeCore = function (observer) {
3048
+ var sink = new RepeatSink(observer, this);
3049
+ return sink.run();
3050
+ };
3051
+
3052
+ return RepeatObservable;
3053
+ }(ObservableBase));
3054
+
3055
+ function RepeatSink(observer, parent) {
3056
+ this.observer = observer;
3057
+ this.parent = parent;
3058
+ }
3059
+
3060
+ RepeatSink.prototype.run = function () {
3061
+ var observer = this.observer, value = this.parent.value;
3062
+ function loopRecursive(i, recurse) {
3063
+ if (i === -1 || i > 0) {
3064
+ observer.onNext(value);
3065
+ i > 0 && i--;
3066
+ }
3067
+ if (i === 0) { return observer.onCompleted(); }
3068
+ recurse(i);
3069
+ }
3070
+
3071
+ return this.parent.scheduler.scheduleRecursiveWithState(this.parent.repeatCount, loopRecursive);
3072
+ };
3073
+
2949
3074
  /**
2950
3075
  * Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages.
2951
- *
2952
- * @example
2953
- * var res = Rx.Observable.repeat(42);
2954
- * var res = Rx.Observable.repeat(42, 4);
2955
- * 3 - res = Rx.Observable.repeat(42, 4, Rx.Scheduler.timeout);
2956
- * 4 - res = Rx.Observable.repeat(42, null, Rx.Scheduler.timeout);
2957
3076
  * @param {Mixed} value Element to repeat.
2958
3077
  * @param {Number} repeatCount [Optiona] Number of times to repeat the element. If not specified, repeats indefinitely.
2959
3078
  * @param {Scheduler} scheduler Scheduler to run the producer loop on. If not specified, defaults to Scheduler.immediate.
@@ -2961,31 +3080,81 @@
2961
3080
  */
2962
3081
  Observable.repeat = function (value, repeatCount, scheduler) {
2963
3082
  isScheduler(scheduler) || (scheduler = currentThreadScheduler);
2964
- return observableReturn(value, scheduler).repeat(repeatCount == null ? -1 : repeatCount);
3083
+ return new RepeatObservable(value, repeatCount, scheduler);
2965
3084
  };
2966
3085
 
3086
+ var JustObservable = (function(__super__) {
3087
+ inherits(JustObservable, __super__);
3088
+ function JustObservable(value, scheduler) {
3089
+ this.value = value;
3090
+ this.scheduler = scheduler;
3091
+ __super__.call(this);
3092
+ }
3093
+
3094
+ JustObservable.prototype.subscribeCore = function (observer) {
3095
+ var sink = new JustSink(observer, this);
3096
+ return sink.run();
3097
+ };
3098
+
3099
+ function JustSink(observer, parent) {
3100
+ this.observer = observer;
3101
+ this.parent = parent;
3102
+ }
3103
+
3104
+ function scheduleItem(s, state) {
3105
+ var value = state[0], observer = state[1];
3106
+ observer.onNext(value);
3107
+ observer.onCompleted();
3108
+ }
3109
+
3110
+ JustSink.prototype.run = function () {
3111
+ return this.parent.scheduler.scheduleWithState([this.parent.value, this.observer], scheduleItem);
3112
+ };
3113
+
3114
+ return JustObservable;
3115
+ }(ObservableBase));
3116
+
2967
3117
  /**
2968
3118
  * Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages.
2969
- * There is an alias called 'just', and 'returnValue' for browsers <IE9.
3119
+ * There is an alias called 'just' or browsers <IE9.
2970
3120
  * @param {Mixed} value Single element in the resulting observable sequence.
2971
3121
  * @param {Scheduler} scheduler Scheduler to send the single element on. If not specified, defaults to Scheduler.immediate.
2972
3122
  * @returns {Observable} An observable sequence containing the single specified element.
2973
3123
  */
2974
- var observableReturn = Observable['return'] = Observable.just = function (value, scheduler) {
3124
+ var observableReturn = Observable['return'] = Observable.just = Observable.returnValue = function (value, scheduler) {
2975
3125
  isScheduler(scheduler) || (scheduler = immediateScheduler);
2976
- return new AnonymousObservable(function (observer) {
2977
- return scheduler.schedule(function () {
2978
- observer.onNext(value);
2979
- observer.onCompleted();
2980
- });
2981
- });
3126
+ return new JustObservable(value, scheduler);
2982
3127
  };
2983
3128
 
2984
- /** @deprecated use return or just */
2985
- Observable.returnValue = function () {
2986
- //deprecate('returnValue', 'return or just');
2987
- return observableReturn.apply(null, arguments);
2988
- };
3129
+ var ThrowObservable = (function(__super__) {
3130
+ inherits(ThrowObservable, __super__);
3131
+ function ThrowObservable(error, scheduler) {
3132
+ this.error = error;
3133
+ this.scheduler = scheduler;
3134
+ __super__.call(this);
3135
+ }
3136
+
3137
+ ThrowObservable.prototype.subscribeCore = function (observer) {
3138
+ var sink = new ThrowSink(observer, this);
3139
+ return sink.run();
3140
+ };
3141
+
3142
+ function ThrowSink(observer, parent) {
3143
+ this.observer = observer;
3144
+ this.parent = parent;
3145
+ }
3146
+
3147
+ function scheduleItem(s, state) {
3148
+ var error = state[0], observer = state[1];
3149
+ observer.onError(error);
3150
+ }
3151
+
3152
+ ThrowSink.prototype.run = function () {
3153
+ return this.parent.scheduler.scheduleWithState([this.parent.error, this.observer], scheduleItem);
3154
+ };
3155
+
3156
+ return ThrowObservable;
3157
+ }(ObservableBase));
2989
3158
 
2990
3159
  /**
2991
3160
  * Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message.
@@ -2994,19 +3163,9 @@
2994
3163
  * @param {Scheduler} scheduler Scheduler to send the exceptional termination call on. If not specified, defaults to Scheduler.immediate.
2995
3164
  * @returns {Observable} The observable sequence that terminates exceptionally with the specified exception object.
2996
3165
  */
2997
- var observableThrow = Observable['throw'] = Observable.throwError = function (error, scheduler) {
3166
+ var observableThrow = Observable['throw'] = Observable.throwError = Observable.throwException = function (error, scheduler) {
2998
3167
  isScheduler(scheduler) || (scheduler = immediateScheduler);
2999
- return new AnonymousObservable(function (observer) {
3000
- return scheduler.schedule(function () {
3001
- observer.onError(error);
3002
- });
3003
- });
3004
- };
3005
-
3006
- /** @deprecated use #some instead */
3007
- Observable.throwException = function () {
3008
- //deprecate('throwException', 'throwError');
3009
- return Observable.throwError.apply(null, arguments);
3168
+ return new ThrowObservable(error, scheduler);
3010
3169
  };
3011
3170
 
3012
3171
  /**
@@ -3202,24 +3361,23 @@
3202
3361
  var len = arguments.length, args = new Array(len);
3203
3362
  for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
3204
3363
  var resultSelector = args.pop();
3205
- len--;
3206
3364
  Array.isArray(args[0]) && (args = args[0]);
3207
3365
 
3208
3366
  return new AnonymousObservable(function (o) {
3209
- var falseFactory = function () { return false; },
3210
- hasValue = arrayInitialize(len, falseFactory),
3367
+ var n = args.length,
3368
+ falseFactory = function () { return false; },
3369
+ hasValue = arrayInitialize(n, falseFactory),
3211
3370
  hasValueAll = false,
3212
- isDone = arrayInitialize(len, falseFactory),
3213
- values = new Array(len);
3371
+ isDone = arrayInitialize(n, falseFactory),
3372
+ values = new Array(n);
3214
3373
 
3215
3374
  function next(i) {
3216
3375
  hasValue[i] = true;
3217
3376
  if (hasValueAll || (hasValueAll = hasValue.every(identity))) {
3218
3377
  try {
3219
3378
  var res = resultSelector.apply(null, values);
3220
- } catch (ex) {
3221
- o.onError(ex);
3222
- return;
3379
+ } catch (e) {
3380
+ return o.onError(e);
3223
3381
  }
3224
3382
  o.onNext(res);
3225
3383
  } else if (isDone.filter(function (x, j) { return j !== i; }).every(identity)) {
@@ -3232,8 +3390,8 @@
3232
3390
  isDone.every(identity) && o.onCompleted();
3233
3391
  }
3234
3392
 
3235
- var subscriptions = new Array(len);
3236
- for (var idx = 0; idx < len; idx++) {
3393
+ var subscriptions = new Array(n);
3394
+ for (var idx = 0; idx < n; idx++) {
3237
3395
  (function (i) {
3238
3396
  var source = args[i], sad = new SingleAssignmentDisposable();
3239
3397
  isPromise(source) && (source = observableFromPromise(source));
@@ -3286,52 +3444,131 @@
3286
3444
  return this.merge(1);
3287
3445
  };
3288
3446
 
3289
- /**
3290
- * Merges an observable sequence of observable sequences into an observable sequence, limiting the number of concurrent subscriptions to inner sequences.
3291
- * Or merges two observable sequences into a single observable sequence.
3292
- *
3293
- * @example
3294
- * 1 - merged = sources.merge(1);
3295
- * 2 - merged = source.merge(otherSource);
3296
- * @param {Mixed} [maxConcurrentOrOther] Maximum number of inner observable sequences being subscribed to concurrently or the second observable sequence.
3297
- * @returns {Observable} The observable sequence that merges the elements of the inner sequences.
3298
- */
3299
- observableProto.merge = function (maxConcurrentOrOther) {
3300
- if (typeof maxConcurrentOrOther !== 'number') { return observableMerge(this, maxConcurrentOrOther); }
3301
- var sources = this;
3302
- return new AnonymousObservable(function (o) {
3303
- var activeCount = 0, group = new CompositeDisposable(), isStopped = false, q = [];
3447
+ var MergeObservable = (function (__super__) {
3448
+ inherits(MergeObservable, __super__);
3449
+
3450
+ function MergeObservable(source, maxConcurrent) {
3451
+ this.source = source;
3452
+ this.maxConcurrent = maxConcurrent;
3453
+ __super__.call(this);
3454
+ }
3304
3455
 
3305
- function subscribe(xs) {
3306
- var subscription = new SingleAssignmentDisposable();
3307
- group.add(subscription);
3456
+ MergeObservable.prototype.subscribeCore = function(observer) {
3457
+ var g = new CompositeDisposable();
3458
+ g.add(this.source.subscribe(new MergeObserver(observer, this.maxConcurrent, g)));
3459
+ return g;
3460
+ };
3308
3461
 
3309
- // Check for promises support
3310
- isPromise(xs) && (xs = observableFromPromise(xs));
3462
+ return MergeObservable;
3463
+
3464
+ }(ObservableBase));
3465
+
3466
+ var MergeObserver = (function () {
3467
+ function MergeObserver(o, max, g) {
3468
+ this.o = o;
3469
+ this.max = max;
3470
+ this.g = g;
3471
+ this.done = false;
3472
+ this.q = [];
3473
+ this.activeCount = 0;
3474
+ this.isStopped = false;
3475
+ }
3476
+ MergeObserver.prototype.handleSubscribe = function (xs) {
3477
+ var sad = new SingleAssignmentDisposable();
3478
+ this.g.add(sad);
3479
+ isPromise(xs) && (xs = observableFromPromise(xs));
3480
+ sad.setDisposable(xs.subscribe(new InnerObserver(this, sad)));
3481
+ };
3482
+ MergeObserver.prototype.onNext = function (innerSource) {
3483
+ if (this.isStopped) { return; }
3484
+ if(this.activeCount < this.max) {
3485
+ this.activeCount++;
3486
+ this.handleSubscribe(innerSource);
3487
+ } else {
3488
+ this.q.push(innerSource);
3489
+ }
3490
+ };
3491
+ MergeObserver.prototype.onError = function (e) {
3492
+ if (!this.isStopped) {
3493
+ this.isStopped = true;
3494
+ this.o.onError(e);
3495
+ }
3496
+ };
3497
+ MergeObserver.prototype.onCompleted = function () {
3498
+ if (!this.isStopped) {
3499
+ this.isStopped = true;
3500
+ this.done = true;
3501
+ this.activeCount === 0 && this.o.onCompleted();
3502
+ }
3503
+ };
3504
+ MergeObserver.prototype.dispose = function() { this.isStopped = true; };
3505
+ MergeObserver.prototype.fail = function (e) {
3506
+ if (!this.isStopped) {
3507
+ this.isStopped = true;
3508
+ this.o.onError(e);
3509
+ return true;
3510
+ }
3311
3511
 
3312
- subscription.setDisposable(xs.subscribe(function (x) { o.onNext(x); }, function (e) { o.onError(e); }, function () {
3313
- group.remove(subscription);
3314
- if (q.length > 0) {
3315
- subscribe(q.shift());
3512
+ return false;
3513
+ };
3514
+
3515
+ function InnerObserver(parent, sad) {
3516
+ this.parent = parent;
3517
+ this.sad = sad;
3518
+ this.isStopped = false;
3519
+ }
3520
+ InnerObserver.prototype.onNext = function (x) { if(!this.isStopped) { this.parent.o.onNext(x); } };
3521
+ InnerObserver.prototype.onError = function (e) {
3522
+ if (!this.isStopped) {
3523
+ this.isStopped = true;
3524
+ this.parent.o.onError(e);
3525
+ }
3526
+ };
3527
+ InnerObserver.prototype.onCompleted = function () {
3528
+ if(!this.isStopped) {
3529
+ this.isStopped = true;
3530
+ var parent = this.parent;
3531
+ parent.g.remove(this.sad);
3532
+ if (parent.q.length > 0) {
3533
+ parent.handleSubscribe(parent.q.shift());
3316
3534
  } else {
3317
- activeCount--;
3318
- isStopped && activeCount === 0 && o.onCompleted();
3535
+ parent.activeCount--;
3536
+ parent.done && parent.activeCount === 0 && parent.o.onCompleted();
3319
3537
  }
3320
- }));
3321
- }
3322
- group.add(sources.subscribe(function (innerSource) {
3323
- if (activeCount < maxConcurrentOrOther) {
3324
- activeCount++;
3325
- subscribe(innerSource);
3326
- } else {
3327
- q.push(innerSource);
3328
3538
  }
3329
- }, function (e) { o.onError(e); }, function () {
3330
- isStopped = true;
3331
- activeCount === 0 && o.onCompleted();
3332
- }));
3333
- return group;
3334
- }, sources);
3539
+ };
3540
+ InnerObserver.prototype.dispose = function() { this.isStopped = true; };
3541
+ InnerObserver.prototype.fail = function (e) {
3542
+ if (!this.isStopped) {
3543
+ this.isStopped = true;
3544
+ this.parent.o.onError(e);
3545
+ return true;
3546
+ }
3547
+
3548
+ return false;
3549
+ };
3550
+
3551
+ return MergeObserver;
3552
+ }());
3553
+
3554
+
3555
+
3556
+
3557
+
3558
+ /**
3559
+ * Merges an observable sequence of observable sequences into an observable sequence, limiting the number of concurrent subscriptions to inner sequences.
3560
+ * Or merges two observable sequences into a single observable sequence.
3561
+ *
3562
+ * @example
3563
+ * 1 - merged = sources.merge(1);
3564
+ * 2 - merged = source.merge(otherSource);
3565
+ * @param {Mixed} [maxConcurrentOrOther] Maximum number of inner observable sequences being subscribed to concurrently or the second observable sequence.
3566
+ * @returns {Observable} The observable sequence that merges the elements of the inner sequences.
3567
+ */
3568
+ observableProto.merge = function (maxConcurrentOrOther) {
3569
+ return typeof maxConcurrentOrOther !== 'number' ?
3570
+ observableMerge(this, maxConcurrentOrOther) :
3571
+ new MergeObservable(this, maxConcurrentOrOther);
3335
3572
  };
3336
3573
 
3337
3574
  /**
@@ -3357,35 +3594,188 @@
3357
3594
  return observableOf(scheduler, sources).mergeAll();
3358
3595
  };
3359
3596
 
3597
+ var MergeAllObservable = (function (__super__) {
3598
+ inherits(MergeAllObservable, __super__);
3599
+
3600
+ function MergeAllObservable(source) {
3601
+ this.source = source;
3602
+ __super__.call(this);
3603
+ }
3604
+
3605
+ MergeAllObservable.prototype.subscribeCore = function (observer) {
3606
+ var g = new CompositeDisposable(), m = new SingleAssignmentDisposable();
3607
+ g.add(m);
3608
+ m.setDisposable(this.source.subscribe(new MergeAllObserver(observer, g)));
3609
+ return g;
3610
+ };
3611
+
3612
+ return MergeAllObservable;
3613
+ }(ObservableBase));
3614
+
3615
+ var MergeAllObserver = (function() {
3616
+
3617
+ function MergeAllObserver(o, g) {
3618
+ this.o = o;
3619
+ this.g = g;
3620
+ this.isStopped = false;
3621
+ this.done = false;
3622
+ }
3623
+ MergeAllObserver.prototype.onNext = function(innerSource) {
3624
+ if(this.isStopped) { return; }
3625
+ var sad = new SingleAssignmentDisposable();
3626
+ this.g.add(sad);
3627
+
3628
+ isPromise(innerSource) && (innerSource = observableFromPromise(innerSource));
3629
+
3630
+ sad.setDisposable(innerSource.subscribe(new InnerObserver(this, this.g, sad)));
3631
+ };
3632
+ MergeAllObserver.prototype.onError = function (e) {
3633
+ if(!this.isStopped) {
3634
+ this.isStopped = true;
3635
+ this.o.onError(e);
3636
+ }
3637
+ };
3638
+ MergeAllObserver.prototype.onCompleted = function () {
3639
+ if(!this.isStopped) {
3640
+ this.isStopped = true;
3641
+ this.done = true;
3642
+ this.g.length === 1 && this.o.onCompleted();
3643
+ }
3644
+ };
3645
+ MergeAllObserver.prototype.dispose = function() { this.isStopped = true; };
3646
+ MergeAllObserver.prototype.fail = function (e) {
3647
+ if (!this.isStopped) {
3648
+ this.isStopped = true;
3649
+ this.o.onError(e);
3650
+ return true;
3651
+ }
3652
+
3653
+ return false;
3654
+ };
3655
+
3656
+ function InnerObserver(parent, g, sad) {
3657
+ this.parent = parent;
3658
+ this.g = g;
3659
+ this.sad = sad;
3660
+ this.isStopped = false;
3661
+ }
3662
+ InnerObserver.prototype.onNext = function (x) { if (!this.isStopped) { this.parent.o.onNext(x); } };
3663
+ InnerObserver.prototype.onError = function (e) {
3664
+ if(!this.isStopped) {
3665
+ this.isStopped = true;
3666
+ this.parent.o.onError(e);
3667
+ }
3668
+ };
3669
+ InnerObserver.prototype.onCompleted = function () {
3670
+ if(!this.isStopped) {
3671
+ var parent = this.parent;
3672
+ this.isStopped = true;
3673
+ parent.g.remove(this.sad);
3674
+ parent.done && parent.g.length === 1 && parent.o.onCompleted();
3675
+ }
3676
+ };
3677
+ InnerObserver.prototype.dispose = function() { this.isStopped = true; };
3678
+ InnerObserver.prototype.fail = function (e) {
3679
+ if (!this.isStopped) {
3680
+ this.isStopped = true;
3681
+ this.parent.o.onError(e);
3682
+ return true;
3683
+ }
3684
+
3685
+ return false;
3686
+ };
3687
+
3688
+ return MergeAllObserver;
3689
+
3690
+ }());
3691
+
3360
3692
  /**
3361
- * Merges an observable sequence of observable sequences into an observable sequence.
3362
- * @returns {Observable} The observable sequence that merges the elements of the inner sequences.
3363
- */
3693
+ * Merges an observable sequence of observable sequences into an observable sequence.
3694
+ * @returns {Observable} The observable sequence that merges the elements of the inner sequences.
3695
+ */
3364
3696
  observableProto.mergeAll = observableProto.mergeObservable = function () {
3365
- var sources = this;
3697
+ return new MergeAllObservable(this);
3698
+ };
3699
+
3700
+ var CompositeError = Rx.CompositeError = function(errors) {
3701
+ this.name = "NotImplementedError";
3702
+ this.innerErrors = errors;
3703
+ this.message = 'This contains multiple errors. Check the innerErrors';
3704
+ Error.call(this);
3705
+ }
3706
+ CompositeError.prototype = Error.prototype;
3707
+
3708
+ /**
3709
+ * Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to
3710
+ * receive all successfully emitted items from all of the source Observables without being interrupted by
3711
+ * an error notification from one of them.
3712
+ *
3713
+ * This behaves like Observable.prototype.mergeAll except that if any of the merged Observables notify of an
3714
+ * error via the Observer's onError, mergeDelayError will refrain from propagating that
3715
+ * error notification until all of the merged Observables have finished emitting items.
3716
+ * @param {Array | Arguments} args Arguments or an array to merge.
3717
+ * @returns {Observable} an Observable that emits all of the items emitted by the Observables emitted by the Observable
3718
+ */
3719
+ Observable.mergeDelayError = function() {
3720
+ var args;
3721
+ if (Array.isArray(arguments[0])) {
3722
+ args = arguments[0];
3723
+ } else {
3724
+ var len = arguments.length;
3725
+ args = new Array(len);
3726
+ for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
3727
+ }
3728
+ var source = observableOf(null, args);
3729
+
3366
3730
  return new AnonymousObservable(function (o) {
3367
3731
  var group = new CompositeDisposable(),
3732
+ m = new SingleAssignmentDisposable(),
3368
3733
  isStopped = false,
3369
- m = new SingleAssignmentDisposable();
3734
+ errors = [];
3370
3735
 
3371
- group.add(m);
3372
- m.setDisposable(sources.subscribe(function (innerSource) {
3373
- var innerSubscription = new SingleAssignmentDisposable();
3374
- group.add(innerSubscription);
3736
+ function setCompletion() {
3737
+ if (errors.length === 0) {
3738
+ o.onCompleted();
3739
+ } else if (errors.length === 1) {
3740
+ o.onError(errors[0]);
3741
+ } else {
3742
+ o.onError(new CompositeError(errors));
3743
+ }
3744
+ }
3375
3745
 
3376
- // Check for promises support
3377
- isPromise(innerSource) && (innerSource = observableFromPromise(innerSource));
3746
+ group.add(m);
3378
3747
 
3379
- innerSubscription.setDisposable(innerSource.subscribe(function (x) { o.onNext(x); }, function (e) { o.onError(e); }, function () {
3380
- group.remove(innerSubscription);
3381
- isStopped && group.length === 1 && o.onCompleted();
3748
+ m.setDisposable(source.subscribe(
3749
+ function (innerSource) {
3750
+ var innerSubscription = new SingleAssignmentDisposable();
3751
+ group.add(innerSubscription);
3752
+
3753
+ // Check for promises support
3754
+ isPromise(innerSource) && (innerSource = observableFromPromise(innerSource));
3755
+
3756
+ innerSubscription.setDisposable(innerSource.subscribe(
3757
+ function (x) { o.onNext(x); },
3758
+ function (e) {
3759
+ errors.push(e);
3760
+ group.remove(innerSubscription);
3761
+ isStopped && group.length === 1 && setCompletion();
3762
+ },
3763
+ function () {
3764
+ group.remove(innerSubscription);
3765
+ isStopped && group.length === 1 && setCompletion();
3766
+ }));
3767
+ },
3768
+ function (e) {
3769
+ errors.push(e);
3770
+ isStopped = true;
3771
+ group.length === 1 && setCompletion();
3772
+ },
3773
+ function () {
3774
+ isStopped = true;
3775
+ group.length === 1 && setCompletion();
3382
3776
  }));
3383
- }, function (e) { o.onError(e); }, function () {
3384
- isStopped = true;
3385
- group.length === 1 && o.onCompleted();
3386
- }));
3387
3777
  return group;
3388
- }, sources);
3778
+ });
3389
3779
  };
3390
3780
 
3391
3781
  /**
@@ -3525,7 +3915,8 @@
3525
3915
  * @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
3526
3916
  */
3527
3917
  observableProto.withLatestFrom = function () {
3528
- for(var args = [], i = 0, len = arguments.length; i < len; i++) { args.push(arguments[i]); }
3918
+ var len = arguments.length, args = new Array(len)
3919
+ for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
3529
3920
  var resultSelector = args.pop(), source = this;
3530
3921
 
3531
3922
  if (typeof source === 'undefined') {
@@ -3826,10 +4217,12 @@
3826
4217
  * @returns {Observable} The source sequence with the side-effecting behavior applied.
3827
4218
  */
3828
4219
  observableProto['do'] = observableProto.tap = observableProto.doAction = function (observerOrOnNext, onError, onCompleted) {
3829
- var source = this, tapObserver = typeof observerOrOnNext === 'function' || typeof observerOrOnNext === 'undefined'?
3830
- observerCreate(observerOrOnNext || noop, onError || noop, onCompleted || noop) :
3831
- observerOrOnNext;
4220
+ var source = this;
3832
4221
  return new AnonymousObservable(function (observer) {
4222
+ var tapObserver = !observerOrOnNext || isFunction(observerOrOnNext) ?
4223
+ observerCreate(observerOrOnNext || noop, onError || noop, onCompleted || noop) :
4224
+ observerOrOnNext;
4225
+
3833
4226
  return source.subscribe(function (x) {
3834
4227
  try {
3835
4228
  tapObserver.onNext(x);
@@ -4045,6 +4438,7 @@
4045
4438
  * @returns {Observable} An observable sequence containing the source sequence elements except for the bypassed ones at the end.
4046
4439
  */
4047
4440
  observableProto.skipLast = function (count) {
4441
+ if (count < 0) { throw new ArgumentOutOfRangeError(); }
4048
4442
  var source = this;
4049
4443
  return new AnonymousObservable(function (o) {
4050
4444
  var q = [];
@@ -4084,6 +4478,7 @@
4084
4478
  * @returns {Observable} An observable sequence containing the specified number of elements from the end of the source sequence.
4085
4479
  */
4086
4480
  observableProto.takeLast = function (count) {
4481
+ if (count < 0) { throw new ArgumentOutOfRangeError(); }
4087
4482
  var source = this;
4088
4483
  return new AnonymousObservable(function (o) {
4089
4484
  var q = [];
@@ -4133,12 +4528,12 @@
4133
4528
  var source = this;
4134
4529
  +count || (count = 0);
4135
4530
  Math.abs(count) === Infinity && (count = 0);
4136
- if (count <= 0) { throw new Error(argumentOutOfRange); }
4531
+ if (count <= 0) { throw new ArgumentOutOfRangeError(); }
4137
4532
  skip == null && (skip = count);
4138
4533
  +skip || (skip = 0);
4139
4534
  Math.abs(skip) === Infinity && (skip = 0);
4140
4535
 
4141
- if (skip <= 0) { throw new Error(argumentOutOfRange); }
4536
+ if (skip <= 0) { throw new ArgumentOutOfRangeError(); }
4142
4537
  return new AnonymousObservable(function (observer) {
4143
4538
  var m = new SingleAssignmentDisposable(),
4144
4539
  refCountDisposable = new RefCountDisposable(m),
@@ -4363,7 +4758,7 @@
4363
4758
 
4364
4759
  MapObservable.prototype.internalMap = function (selector, thisArg) {
4365
4760
  var self = this;
4366
- return new MapObservable(this.source, function (x, i, o) { return selector(self.selector(x, i, o), i, o); }, thisArg)
4761
+ return new MapObservable(this.source, function (x, i, o) { return selector.call(this, self.selector(x, i, o), i, o); }, thisArg)
4367
4762
  };
4368
4763
 
4369
4764
  MapObservable.prototype.subscribeCore = function (observer) {
@@ -4384,10 +4779,9 @@
4384
4779
 
4385
4780
  MapObserver.prototype.onNext = function(x) {
4386
4781
  if (this.isStopped) { return; }
4387
- try {
4388
- var result = this.selector(x, this.i++, this.source);
4389
- } catch (e) {
4390
- return this.observer.onError(e);
4782
+ var result = tryCatch(this.selector).call(this, x, this.i++, this.source);
4783
+ if (result === errorObj) {
4784
+ return this.observer.onError(result.e);
4391
4785
  }
4392
4786
  this.observer.onNext(result);
4393
4787
  };
@@ -4560,7 +4954,7 @@
4560
4954
  * @returns {Observable} An observable sequence that contains the elements that occur after the specified index in the input sequence.
4561
4955
  */
4562
4956
  observableProto.skip = function (count) {
4563
- if (count < 0) { throw new Error(argumentOutOfRange); }
4957
+ if (count < 0) { throw new ArgumentOutOfRangeError(); }
4564
4958
  var source = this;
4565
4959
  return new AnonymousObservable(function (o) {
4566
4960
  var remaining = count;
@@ -4613,7 +5007,7 @@
4613
5007
  * @returns {Observable} An observable sequence that contains the specified number of elements from the start of the input sequence.
4614
5008
  */
4615
5009
  observableProto.take = function (count, scheduler) {
4616
- if (count < 0) { throw new RangeError(argumentOutOfRange); }
5010
+ if (count < 0) { throw new ArgumentOutOfRangeError(); }
4617
5011
  if (count === 0) { return observableEmpty(scheduler); }
4618
5012
  var source = this;
4619
5013
  return new AnonymousObservable(function (o) {
@@ -4672,7 +5066,7 @@
4672
5066
 
4673
5067
  FilterObservable.prototype.internalFilter = function(predicate, thisArg) {
4674
5068
  var self = this;
4675
- return new FilterObservable(this.source, function(x, i, o) { return self.predicate(x, i, o) && predicate(x, i, o); }, thisArg);
5069
+ return new FilterObservable(this.source, function(x, i, o) { return self.predicate(x, i, o) && predicate.call(this, x, i, o); }, thisArg);
4676
5070
  };
4677
5071
 
4678
5072
  return FilterObservable;
@@ -4689,10 +5083,9 @@
4689
5083
 
4690
5084
  FilterObserver.prototype.onNext = function(x) {
4691
5085
  if (this.isStopped) { return; }
4692
- try {
4693
- var shouldYield = this.predicate(x, this.i++, this.source);
4694
- } catch (e) {
4695
- return this.observer.onError(e);
5086
+ var shouldYield = tryCatch(this.predicate).call(this, x, this.i++, this.source);
5087
+ if (shouldYield === errorObj) {
5088
+ return this.observer.onError(shouldYield.e);
4696
5089
  }
4697
5090
  shouldYield && this.observer.onNext(x);
4698
5091
  };
@@ -4731,32 +5124,32 @@
4731
5124
  observableProto.transduce = function(transducer) {
4732
5125
  var source = this;
4733
5126
 
4734
- function transformForObserver(observer) {
5127
+ function transformForObserver(o) {
4735
5128
  return {
4736
- init: function() {
4737
- return observer;
5129
+ '@@transducer/init': function() {
5130
+ return o;
4738
5131
  },
4739
- step: function(obs, input) {
5132
+ '@@transducer/step': function(obs, input) {
4740
5133
  return obs.onNext(input);
4741
5134
  },
4742
- result: function(obs) {
5135
+ '@@transducer/result': function(obs) {
4743
5136
  return obs.onCompleted();
4744
5137
  }
4745
5138
  };
4746
5139
  }
4747
5140
 
4748
- return new AnonymousObservable(function(observer) {
4749
- var xform = transducer(transformForObserver(observer));
5141
+ return new AnonymousObservable(function(o) {
5142
+ var xform = transducer(transformForObserver(o));
4750
5143
  return source.subscribe(
4751
5144
  function(v) {
4752
5145
  try {
4753
- xform.step(observer, v);
5146
+ xform['@@transducer/step'](o, v);
4754
5147
  } catch (e) {
4755
- observer.onError(e);
5148
+ o.onError(e);
4756
5149
  }
4757
5150
  },
4758
- observer.onError.bind(observer),
4759
- function() { xform.result(observer); }
5151
+ function (e) { o.onError(e); },
5152
+ function() { xform['@@transducer/result'](o); }
4760
5153
  );
4761
5154
  }, source);
4762
5155
  };
@@ -4766,27 +5159,24 @@
4766
5159
 
4767
5160
  // Fix subscriber to check for undefined or function returned to decorate as Disposable
4768
5161
  function fixSubscriber(subscriber) {
4769
- if (subscriber && typeof subscriber.dispose === 'function') { return subscriber; }
4770
-
4771
- return typeof subscriber === 'function' ?
4772
- disposableCreate(subscriber) :
4773
- disposableEmpty;
5162
+ return subscriber && isFunction(subscriber.dispose) ? subscriber :
5163
+ isFunction(subscriber) ? disposableCreate(subscriber) : disposableEmpty;
4774
5164
  }
4775
5165
 
4776
5166
  function setDisposable(s, state) {
4777
5167
  var ado = state[0], subscribe = state[1];
4778
- try {
4779
- ado.setDisposable(fixSubscriber(subscribe(ado)));
4780
- } catch (e) {
4781
- if (!ado.fail(e)) { throw e; }
5168
+ var sub = tryCatch(subscribe)(ado);
5169
+
5170
+ if (sub === errorObj) {
5171
+ if(!ado.fail(errorObj.e)) { return thrower(errorObj.e); }
4782
5172
  }
5173
+ ado.setDisposable(fixSubscriber(sub));
4783
5174
  }
4784
5175
 
4785
5176
  function AnonymousObservable(subscribe, parent) {
4786
5177
  this.source = parent;
4787
5178
 
4788
5179
  function s(observer) {
4789
-
4790
5180
  var ado = new AutoDetachObserver(observer), state = [ado, subscribe];
4791
5181
 
4792
5182
  if (currentThreadScheduler.scheduleRequired()) {
@@ -4794,7 +5184,6 @@
4794
5184
  } else {
4795
5185
  setDisposable(null, state);
4796
5186
  }
4797
-
4798
5187
  return ado;
4799
5188
  }
4800
5189
 
@@ -4817,35 +5206,23 @@
4817
5206
  var AutoDetachObserverPrototype = AutoDetachObserver.prototype;
4818
5207
 
4819
5208
  AutoDetachObserverPrototype.next = function (value) {
4820
- var noError = false;
4821
- try {
4822
- this.observer.onNext(value);
4823
- noError = true;
4824
- } catch (e) {
4825
- return thrower(e);
4826
- } finally {
4827
- !noError && this.dispose();
5209
+ var result = tryCatch(this.observer.onNext).call(this.observer, value);
5210
+ if (result === errorObj) {
5211
+ this.dispose();
5212
+ thrower(result.e);
4828
5213
  }
4829
5214
  };
4830
5215
 
4831
5216
  AutoDetachObserverPrototype.error = function (err) {
4832
- try {
4833
- this.observer.onError(err);
4834
- } catch (e) {
4835
- return thrower(e);
4836
- } finally {
4837
- this.dispose();
4838
- }
5217
+ var result = tryCatch(this.observer.onError).call(this.observer, err);
5218
+ this.dispose();
5219
+ result === errorObj && thrower(result.e);
4839
5220
  };
4840
5221
 
4841
5222
  AutoDetachObserverPrototype.completed = function () {
4842
- try {
4843
- this.observer.onCompleted();
4844
- } catch (e) {
4845
- return thrower(e);
4846
- } finally {
4847
- this.dispose();
4848
- }
5223
+ var result = tryCatch(this.observer.onCompleted).call(this.observer);
5224
+ this.dispose();
5225
+ result === errorObj && thrower(result.e);
4849
5226
  };
4850
5227
 
4851
5228
  AutoDetachObserverPrototype.setDisposable = function (value) { this.m.setDisposable(value); };