ig-types 6.25.0 → 6.25.1

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 (3) hide show
  1. package/Promise.js +14 -18
  2. package/package.json +1 -1
  3. package/test.js +15 -1
package/Promise.js CHANGED
@@ -851,33 +851,29 @@ object.Constructor('IterablePromise', Promise, {
851
851
  // NOTE: this is needed for self-resolve...
852
852
  writable: true,
853
853
  })
854
+
854
855
  // handle promise state...
855
856
  try{
856
857
  var res = obj.__unpack(list)
857
858
  }catch(err){
858
859
  promise.reject(err) }
859
- res instanceof Promise ?
860
- res
861
- .then(function(list){
862
- promise.resolve(list) })
863
- .catch(promise.reject)
864
- : promise.resolve(res)
865
- // XXX EXPEREMENTAL
866
- // XXX do we handle errors here???
867
- // self-resolve state...
868
- list instanceof Promise ?
869
- list.then(function(list){
870
- obj.__packed = list })
871
- /*/ XXX use selfResolve(..)
872
- : selfResolve(list) }
873
- /*/
874
- : list.forEach(function(elem, i){
860
+
861
+ if(res instanceof Promise){
862
+ res.then(
863
+ function(list){
864
+ promise.resolve(list)
865
+ // self-resolve...
866
+ obj.__packed = list },
867
+ handleError)
868
+ } else {
869
+ promise.resolve(res)
870
+ // self-resolve...
871
+ res.forEach(function(elem, i){
875
872
  elem instanceof Promise
876
873
  && elem.then(function(elem){
877
874
  lst = obj.__packed.slice()
878
875
  lst[i] = elem
879
- obj.__packed = lst }) }) }
880
- //*/
876
+ obj.__packed = lst }) }) } }
881
877
  return obj },
882
878
  })
883
879
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ig-types",
3
- "version": "6.25.0",
3
+ "version": "6.25.1",
4
4
  "description": "Generic JavaScript types and type extensions...",
5
5
  "main": "main.js",
6
6
  "scripts": {
package/test.js CHANGED
@@ -495,7 +495,21 @@ var cases = test.Cases({
495
495
  function(err){
496
496
  return 'done' })
497
497
  == 'done',
498
- `.${iter}(..): late onerror(..)`) }
498
+ `.${iter}(..): late onerror(..)`)
499
+ assert(
500
+ await Promise[iter](
501
+ (function*(){
502
+ yield* [1,2,3]
503
+ throw 'ERROR' })(),
504
+ function(e){
505
+ if(e == 4){
506
+ throw 'ERROR' }
507
+ return e },
508
+ function(err){
509
+ return 'done' })
510
+ == 'done',
511
+ `.${iter}(..): late onerror(..)`)
512
+ }
499
513
  },
500
514
 
501
515
  // Date.js