{"version":3,"sources":["async.es6"],"names":[],"mappings":"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","file":"angular2/src/facade/async.es6","sourcesContent":["import {int, global, isPresent} from 'angular2/src/facade/lang';\nimport {List} from 'angular2/src/facade/collection';\nimport Rx from 'rx/dist/rx.all';\n\nexport var Promise = global.Promise;\n\nexport class PromiseWrapper {\n  static resolve(obj):Promise {\n    return Promise.resolve(obj);\n  }\n\n  static reject(obj):Promise {\n    return Promise.reject(obj);\n  }\n\n  // Note: We can't rename this method into `catch`, as this is not a valid\n  // method name in Dart.\n  static catchError(promise:Promise, onError:Function):Promise {\n    return promise.catch(onError);\n  }\n\n  static all(promises:List):Promise {\n    if (promises.length == 0) return Promise.resolve([]);\n    return Promise.all(promises);\n  }\n\n  static then(promise:Promise, success:Function, rejection:Function):Promise {\n    return promise.then(success, rejection);\n  }\n\n  static completer() {\n    var resolve;\n    var reject;\n\n    var p = new Promise(function(res, rej) {\n      resolve = res;\n      reject = rej;\n    });\n\n    return {\n      promise: p,\n      resolve: resolve,\n      reject: reject\n    };\n  }\n\n  static setTimeout(fn:Function, millis:int) {\n    global.setTimeout(fn, millis);\n  }\n\n  static isPromise(maybePromise):boolean {\n    return maybePromise instanceof Promise;\n  }\n}\n\nexport class ObservableWrapper {\n  static subscribe(emitter:EventEmitter, onNext, onThrow = null, onReturn = null) {\n    return emitter.observer({next: onNext, throw: onThrow, return: onReturn});\n  }\n\n  static dispose(subscription:any) {\n    subscription.dispose();\n  }\n\n  static isObservable(obs):boolean {\n    return obs instanceof Observable;\n  }\n\n  static callNext(emitter:EventEmitter, value:any) {\n    emitter.next(value);\n  }\n\n  static callThrow(emitter:EventEmitter, error:any) {\n    emitter.throw(error);\n  }\n\n  static callReturn(emitter:EventEmitter) {\n    emitter.return();\n  }\n}\n\n//TODO: vsavkin change to interface\nexport class Observable {\n  observer(generator:Function){}\n}\n\n/**\n * Use Rx.Observable but provides an adapter to make it work as specified here:\n * https://github.com/jhusain/observable-spec\n *\n * Once a reference implementation of the spec is available, switch to it.\n */\nexport class EventEmitter extends Observable {\n  _subject:Rx.Subject;\n\n  constructor() {\n    super();\n    this._subject = new Rx.Subject();\n  }\n\n  observer(generator) {\n    // Rx.Scheduler.immediate and setTimeout is a workaround, so Rx works with zones.js.\n    // Once https://github.com/angular/zone.js/issues/51 is fixed, the hack should be removed.\n    return this._subject.observeOn(Rx.Scheduler.immediate).subscribe(\n      (value) => {setTimeout(() => generator.next(value));},\n      (error) => generator.throw ? generator.throw(error) : null,\n      () => generator.return ? generator.return() : null\n    );\n  }\n\n  toRx():Rx.Observable {\n    return this._subject;\n  }\n\n  next(value) {\n    this._subject.onNext(value);\n  }\n\n  throw(error) {\n    this._subject.onError(error);\n  }\n\n  return(value) {\n    this._subject.onCompleted();\n  }\n}"]}