Skip to content

Commit f660ab1

Browse files
committed
Merge pull request #53 from machty/ember-113
Fix microtask RSVP onerror scheduling, fixes Ember 1.13
2 parents b1d7800 + 0960283 commit f660ab1

File tree

4 files changed

+21
-57
lines changed

4 files changed

+21
-57
lines changed

.travis.yml

+2-13
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
language: node_js
33
node_js:
4-
- "stable"
4+
- "5"
55

66
sudo: required
77
dist: trusty
@@ -17,17 +17,6 @@ cache:
1717
directories:
1818
- node_modules
1919

20-
env:
21-
- EMBER_TRY_SCENARIO=default
22-
- EMBER_TRY_SCENARIO=ember-release
23-
- EMBER_TRY_SCENARIO=ember-beta
24-
- EMBER_TRY_SCENARIO=ember-canary
25-
26-
matrix:
27-
fast_finish: true
28-
allow_failures:
29-
- env: EMBER_TRY_SCENARIO=ember-canary
30-
3120
before_install:
3221
- "export DISPLAY=:99.0"
3322
- "sh -e /etc/init.d/xvfb start"
@@ -42,4 +31,4 @@ install:
4231
- bower install
4332

4433
script:
45-
- ember try $EMBER_TRY_SCENARIO test
34+
- ember try:each

addon/-task-instance.js

+13-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export function didCancel(e) {
2929
function forwardToInternalPromise(method) {
3030
return function(...args) {
3131
this._userWillHandlePromise = true;
32-
return this._defer.promise[method](...args);
32+
return this._defer.promise[method](...args).catch(deferToLastRunLoopQueue);
3333
};
3434
}
3535

@@ -42,6 +42,17 @@ function spliceSlice(str, index, count, add) {
4242
return str.slice(0, index) + (add || "") + str.slice(index + count);
4343
}
4444

45+
let run = Ember.run;
46+
47+
// this backports the Ember 2.0+ RSVP _onError 'after' microtask behavior to Ember < 2.0
48+
function deferToLastRunLoopQueue(e) {
49+
return new Ember.RSVP.Promise((_, reject) => {
50+
run.schedule(run.queues[run.queues.length - 1], () => {
51+
reject(e);
52+
});
53+
});
54+
}
55+
4556
const SUCCESS = "success";
4657
const ERROR = "error";
4758
const CANCELATION = "cancel";
@@ -423,3 +434,4 @@ function normalizeObservable(value) {
423434

424435
export default TaskInstance;
425436

437+

config/ember-try.js

+1-41
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,4 @@
11
/*jshint node:true*/
22
module.exports = {
3-
scenarios: [
4-
{
5-
name: 'default',
6-
bower: {
7-
dependencies: { }
8-
}
9-
},
10-
{
11-
name: 'ember-release',
12-
bower: {
13-
dependencies: {
14-
'ember': 'components/ember#release'
15-
},
16-
resolutions: {
17-
'ember': 'release'
18-
}
19-
}
20-
},
21-
{
22-
name: 'ember-beta',
23-
bower: {
24-
dependencies: {
25-
'ember': 'components/ember#beta'
26-
},
27-
resolutions: {
28-
'ember': 'beta'
29-
}
30-
}
31-
},
32-
{
33-
name: 'ember-canary',
34-
bower: {
35-
dependencies: {
36-
'ember': 'components/ember#canary'
37-
},
38-
resolutions: {
39-
'ember': 'canary'
40-
}
41-
}
42-
}
43-
]
3+
useVersionCompatibility: true
444
};

package.json

+5-2
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"ember-notify": "5.0.1",
4949
"ember-power-select": "0.8.6",
5050
"ember-resolver": "^2.0.3",
51-
"ember-try": "^0.1.2",
51+
"ember-try": "^0.2.2",
5252
"liquid-fire": "0.23.0",
5353
"loader.js": "^4.0.0"
5454
},
@@ -66,6 +66,9 @@
6666
},
6767
"ember-addon": {
6868
"configPath": "tests/dummy/config",
69-
"demoURL": "http://ember-concurrency.com/"
69+
"demoURL": "http://ember-concurrency.com/",
70+
"versionCompatibility": {
71+
"ember": ">=1.13.0"
72+
}
7073
}
7174
}

0 commit comments

Comments
 (0)