Skip to content

Commit 7445da0

Browse files
committed
Other: aspromise performance pass
1 parent 3f8b74b commit 7445da0

18 files changed

+107
-68
lines changed

dist/light/protobuf.js

+26-14
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/light/protobuf.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/light/protobuf.min.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/light/protobuf.min.js.gz

13 Bytes
Binary file not shown.

dist/light/protobuf.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/minimal/protobuf.js

+26-14
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/minimal/protobuf.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/minimal/protobuf.min.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/minimal/protobuf.min.js.gz

16 Bytes
Binary file not shown.

dist/minimal/protobuf.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.js

+26-14
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.min.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.min.js.gz

8 Bytes
Binary file not shown.

dist/protobuf.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/aspromise/index.js

+15-12
Original file line numberDiff line numberDiff line change
@@ -19,26 +19,29 @@ module.exports = asPromise;
1919
* @returns {Promise<*>} Promisified function
2020
*/
2121
function asPromise(fn, ctx/*, varargs */) {
22-
var params = [];
23-
for (var i = 2; i < arguments.length;)
24-
params.push(arguments[i++]);
25-
var pending = true;
26-
return new Promise(function asPromiseExecutor(resolve, reject) {
27-
params.push(function asPromiseCallback(err/*, varargs */) {
22+
var params = new Array(arguments.length - 1),
23+
offset = 0,
24+
index = 2,
25+
pending = true;
26+
while (index < arguments.length)
27+
params[offset++] = arguments[index++];
28+
return new Promise(function executor(resolve, reject) {
29+
params[offset] = function callback(err/*, varargs */) {
2830
if (pending) {
2931
pending = false;
3032
if (err)
3133
reject(err);
3234
else {
33-
var args = [];
34-
for (var i = 1; i < arguments.length;)
35-
args.push(arguments[i++]);
36-
resolve.apply(null, args);
35+
var params = new Array(arguments.length - 1),
36+
offset = 0;
37+
while (offset < params.length)
38+
params[offset++] = arguments[offset];
39+
resolve.apply(null, params);
3740
}
3841
}
39-
});
42+
};
4043
try {
41-
fn.apply(ctx || this, params); // eslint-disable-line no-invalid-this
44+
fn.apply(ctx || null, params);
4245
} catch (err) {
4346
if (pending) {
4447
pending = false;

lib/aspromise/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@protobufjs/aspromise",
33
"description": "Returns a promise from a node-style callback function.",
4-
"version": "1.1.1",
4+
"version": "1.1.2",
55
"author": "Daniel Wirtz <[email protected]>",
66
"repository": {
77
"type": "git",

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
},
4646
"dependencies": {
4747
"long": "^3.2.0",
48-
"@protobufjs/aspromise": "^1.1.1",
48+
"@protobufjs/aspromise": "^1.1.2",
4949
"@protobufjs/base64": "^1.1.1",
5050
"@protobufjs/codegen": "^2.0.3",
5151
"@protobufjs/eventemitter": "^1.1.0",

0 commit comments

Comments
 (0)