Skip to content

Commit dc5a7f6

Browse files
Merge pull request then#89 from cpojer/code-style
Code style improvements.
2 parents cac6f9d + de16c44 commit dc5a7f6

File tree

7 files changed

+155
-128
lines changed

7 files changed

+155
-128
lines changed

build.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ fs.mkdirSync(__dirname + '/setimmediate/');
6363
fs.readdirSync(__dirname + '/src').forEach(function (filename) {
6464
var src = fs.readFileSync(__dirname + '/src/' + filename, 'utf8');
6565
var out = fixup(src);
66-
out = out.replace(/var asap \= require\(\'([a-z\/]+)\'\)/g, '');
66+
out = out.replace(/var asap \= require\(\'([a-z\/]+)\'\);/g, '');
6767
out = out.replace(/asap/g, "setImmediate");
6868
fs.writeFileSync(__dirname + '/setimmediate/' + filename, out);
6969
});

src/core.js

Lines changed: 53 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
'use strict';
22

3-
var asap = require('asap/raw')
3+
var asap = require('asap/raw');
44

5-
function noop() {};
5+
function noop() {}
66

77
// States:
88
//
@@ -51,8 +51,12 @@ function tryCallTwo(fn, a, b) {
5151

5252
module.exports = Promise;
5353
function Promise(fn) {
54-
if (typeof this !== 'object') throw new TypeError('Promises must be constructed via new')
55-
if (typeof fn !== 'function') throw new TypeError('not a function')
54+
if (typeof this !== 'object') {
55+
throw new TypeError('Promises must be constructed via new');
56+
}
57+
if (typeof fn !== 'function') {
58+
throw new TypeError('not a function');
59+
}
5660
this._state = 0;
5761
this._value = null;
5862
this._deferreds = [];
@@ -68,7 +72,9 @@ Promise.prototype._safeThen = function (onFulfilled, onRejected) {
6872
});
6973
};
7074
Promise.prototype.then = function(onFulfilled, onRejected) {
71-
if (this.constructor !== Promise) return this._safeThen(onFulfilled, onRejected);
75+
if (this.constructor !== Promise) {
76+
return this._safeThen(onFulfilled, onRejected);
77+
}
7278
var res = new Promise(noop);
7379
this._handle(new Handler(onFulfilled, onRejected, res));
7480
return res;
@@ -85,25 +91,34 @@ Promise.prototype._handle = function(deferred) {
8591
var state = this._state;
8692
var value = this._value;
8793
asap(function() {
88-
var cb = state === 1 ? deferred.onFulfilled : deferred.onRejected
94+
var cb = state === 1 ? deferred.onFulfilled : deferred.onRejected;
8995
if (cb === null) {
90-
(state === 1 ? deferred.promise._resolve(value) : deferred.promise._reject(value))
91-
return
96+
if (state === 1) {
97+
deferred.promise._resolve(value);
98+
} else {
99+
deferred.promise._reject(value);
100+
}
101+
return;
92102
}
93103
var ret = tryCallOne(cb, value);
94104
if (ret === IS_ERROR) {
95-
deferred.promise._reject(LAST_ERROR)
105+
deferred.promise._reject(LAST_ERROR);
96106
} else {
97-
deferred.promise._resolve(ret)
107+
deferred.promise._resolve(ret);
98108
}
99109
});
100110
};
101111
Promise.prototype._resolve = function(newValue) {
102-
//Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure
112+
// Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure
103113
if (newValue === this) {
104-
return this._reject(new TypeError('A promise cannot be resolved with itself.'))
114+
return this._reject(
115+
new TypeError('A promise cannot be resolved with itself.')
116+
);
105117
}
106-
if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {
118+
if (
119+
newValue &&
120+
(typeof newValue === 'object' || typeof newValue === 'function')
121+
) {
107122
var then = getThen(newValue);
108123
if (then === IS_ERROR) {
109124
return this._reject(LAST_ERROR);
@@ -120,30 +135,30 @@ Promise.prototype._resolve = function(newValue) {
120135
}
121136
return;
122137
} else if (typeof then === 'function') {
123-
doResolve(then.bind(newValue), this)
124-
return
138+
doResolve(then.bind(newValue), this);
139+
return;
125140
}
126141
}
127-
this._state = 1
128-
this._value = newValue
129-
this._finale()
130-
}
142+
this._state = 1;
143+
this._value = newValue;
144+
this._finale();
145+
};
131146

132147
Promise.prototype._reject = function (newValue) {
133-
this._state = 2
134-
this._value = newValue
135-
this._finale()
136-
}
148+
this._state = 2;
149+
this._value = newValue;
150+
this._finale();
151+
};
137152
Promise.prototype._finale = function () {
138153
for (var i = 0; i < this._deferreds.length; i++)
139-
this._handle(this._deferreds[i])
140-
this._deferreds = null
141-
}
154+
this._handle(this._deferreds[i]);
155+
this._deferreds = null;
156+
};
142157

143158

144159
function Handler(onFulfilled, onRejected, promise){
145-
this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null
146-
this.onRejected = typeof onRejected === 'function' ? onRejected : null
160+
this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;
161+
this.onRejected = typeof onRejected === 'function' ? onRejected : null;
147162
this.promise = promise;
148163
}
149164

@@ -156,16 +171,16 @@ function Handler(onFulfilled, onRejected, promise){
156171
function doResolve(fn, promise) {
157172
var done = false;
158173
var res = tryCallTwo(fn, function (value) {
159-
if (done) return
160-
done = true
161-
promise._resolve(value)
174+
if (done) return;
175+
done = true;
176+
promise._resolve(value);
162177
}, function (reason) {
163-
if (done) return
164-
done = true
165-
promise._reject(reason)
166-
})
178+
if (done) return;
179+
done = true;
180+
promise._reject(reason);
181+
});
167182
if (!done && res === IS_ERROR) {
168-
done = true
169-
promise._reject(LAST_ERROR)
183+
done = true;
184+
promise._reject(LAST_ERROR);
170185
}
171-
}
186+
}

src/done.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
'use strict';
22

3-
var Promise = require('./core.js')
3+
var Promise = require('./core.js');
44

5-
module.exports = Promise
5+
module.exports = Promise;
66
Promise.prototype.done = function (onFulfilled, onRejected) {
7-
var self = arguments.length ? this.then.apply(this, arguments) : this
7+
var self = arguments.length ? this.then.apply(this, arguments) : this;
88
self.then(null, function (err) {
99
setTimeout(function () {
10-
throw err
11-
}, 0)
12-
})
13-
}
10+
throw err;
11+
}, 0);
12+
});
13+
};

src/es6-extensions.js

Lines changed: 46 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -2,103 +2,105 @@
22

33
//This file contains the ES6 extensions to the core Promises/A+ API
44

5-
var Promise = require('./core.js')
6-
var asap = require('asap/raw')
5+
var Promise = require('./core.js');
6+
var asap = require('asap/raw');
77

8-
module.exports = Promise
8+
module.exports = Promise;
99

1010
/* Static Functions */
1111

1212
function ValuePromise(value) {
1313
this.then = function (onFulfilled) {
14-
if (typeof onFulfilled !== 'function') return this
14+
if (typeof onFulfilled !== 'function') return this;
1515
return new Promise(function (resolve, reject) {
1616
asap(function () {
1717
try {
18-
resolve(onFulfilled(value))
18+
resolve(onFulfilled(value));
1919
} catch (ex) {
2020
reject(ex);
2121
}
22-
})
23-
})
24-
}
22+
});
23+
});
24+
};
2525
}
26-
ValuePromise.prototype = Promise.prototype
26+
ValuePromise.prototype = Promise.prototype;
2727

28-
var TRUE = new ValuePromise(true)
29-
var FALSE = new ValuePromise(false)
30-
var NULL = new ValuePromise(null)
31-
var UNDEFINED = new ValuePromise(undefined)
32-
var ZERO = new ValuePromise(0)
33-
var EMPTYSTRING = new ValuePromise('')
28+
var TRUE = new ValuePromise(true);
29+
var FALSE = new ValuePromise(false);
30+
var NULL = new ValuePromise(null);
31+
var UNDEFINED = new ValuePromise(undefined);
32+
var ZERO = new ValuePromise(0);
33+
var EMPTYSTRING = new ValuePromise('');
3434

3535
Promise.resolve = function (value) {
36-
if (value instanceof Promise) return value
36+
if (value instanceof Promise) return value;
3737

38-
if (value === null) return NULL
39-
if (value === undefined) return UNDEFINED
40-
if (value === true) return TRUE
41-
if (value === false) return FALSE
42-
if (value === 0) return ZERO
43-
if (value === '') return EMPTYSTRING
38+
if (value === null) return NULL;
39+
if (value === undefined) return UNDEFINED;
40+
if (value === true) return TRUE;
41+
if (value === false) return FALSE;
42+
if (value === 0) return ZERO;
43+
if (value === '') return EMPTYSTRING;
4444

4545
if (typeof value === 'object' || typeof value === 'function') {
4646
try {
47-
var then = value.then
47+
var then = value.then;
4848
if (typeof then === 'function') {
49-
return new Promise(then.bind(value))
49+
return new Promise(then.bind(value));
5050
}
5151
} catch (ex) {
5252
return new Promise(function (resolve, reject) {
53-
reject(ex)
54-
})
53+
reject(ex);
54+
});
5555
}
5656
}
5757

58-
return new ValuePromise(value)
59-
}
58+
return new ValuePromise(value);
59+
};
6060

6161
Promise.all = function (arr) {
62-
var args = Array.prototype.slice.call(arr)
62+
var args = Array.prototype.slice.call(arr);
6363

6464
return new Promise(function (resolve, reject) {
65-
if (args.length === 0) return resolve([])
66-
var remaining = args.length
65+
if (args.length === 0) return resolve([]);
66+
var remaining = args.length;
6767
function res(i, val) {
6868
if (val && (typeof val === 'object' || typeof val === 'function')) {
69-
var then = val.then
69+
var then = val.then;
7070
if (typeof then === 'function') {
71-
then.call(val, function (val) { res(i, val) }, reject)
72-
return
71+
then.call(val, function (val) {
72+
res(i, val);
73+
}, reject);
74+
return;
7375
}
7476
}
75-
args[i] = val
77+
args[i] = val;
7678
if (--remaining === 0) {
7779
resolve(args);
7880
}
7981
}
8082
for (var i = 0; i < args.length; i++) {
81-
res(i, args[i])
83+
res(i, args[i]);
8284
}
83-
})
84-
}
85+
});
86+
};
8587

8688
Promise.reject = function (value) {
87-
return new Promise(function (resolve, reject) {
89+
return new Promise(function (resolve, reject) {
8890
reject(value);
8991
});
90-
}
92+
};
9193

9294
Promise.race = function (values) {
93-
return new Promise(function (resolve, reject) {
95+
return new Promise(function (resolve, reject) {
9496
values.forEach(function(value){
9597
Promise.resolve(value).then(resolve, reject);
96-
})
98+
});
9799
});
98-
}
100+
};
99101

100102
/* Prototype Methods */
101103

102104
Promise.prototype['catch'] = function (onRejected) {
103105
return this.then(null, onRejected);
104-
}
106+
};

src/finally.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
'use strict';
22

3-
var Promise = require('./core.js')
3+
var Promise = require('./core.js');
44

5-
module.exports = Promise
5+
module.exports = Promise;
66
Promise.prototype['finally'] = function (f) {
77
return this.then(function (value) {
88
return Promise.resolve(f()).then(function () {
9-
return value
10-
})
9+
return value;
10+
});
1111
}, function (err) {
1212
return Promise.resolve(f()).then(function () {
13-
throw err
14-
})
15-
})
16-
}
13+
throw err;
14+
});
15+
});
16+
};

src/index.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use strict';
22

3-
module.exports = require('./core.js')
4-
require('./done.js')
5-
require('./finally.js')
6-
require('./es6-extensions.js')
7-
require('./node-extensions.js')
3+
module.exports = require('./core.js');
4+
require('./done.js');
5+
require('./finally.js');
6+
require('./es6-extensions.js');
7+
require('./node-extensions.js');

0 commit comments

Comments
 (0)