Skip to content

Commit

Permalink
v1.1.6 (code optimizing)
Browse files Browse the repository at this point in the history
  • Loading branch information
Vladimir Antonov committed Jan 18, 2016
1 parent 9f9853d commit b6e5b4b
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 17 deletions.
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# nanopromise

[![NPM version][npm-image]][npm-url]
[![Build status][travis-image]][travis-url]
[![Test coverage][coveralls-image]][coveralls-url]
[![Dependency Status][david-image]][david-url]
[![License][license-image]][license-url]
[![Downloads][downloads-image]][downloads-url]

# nanopromise

A small Promise/A++ node module

## Usage
Expand Down Expand Up @@ -101,23 +101,23 @@ timer(1000).then(function () {
[gitter-image]: https://badges.gitter.im/Holixus/nanopromise.png
[gitter-url]: https://gitter.im/Holixus/nanopromise

[npm-image]: https://img.shields.io/npm/v/nanopromise.svg?style=flat-square
[npm-image]: https://img.shields.io/npm/v/nanopromise.svg
[npm-url]: https://npmjs.org/package/nanopromise

[github-tag]: http://img.shields.io/github/tag/Holixus/nanopromise.svg?style=flat-square
[github-tag]: http://img.shields.io/github/tag/Holixus/nanopromise.svg
[github-url]: https://github.com/Holixus/nanopromise/tags

[travis-image]: https://travis-ci.org/Holixus/nanopromise.svg?branch=cancellable
[travis-url]: https://travis-ci.org/Holixus/nanopromise

[coveralls-image]: https://img.shields.io/coveralls/Holixus/nanopromise.svg?style=flat-square&branch=cancellable
[coveralls-image]: https://img.shields.io/coveralls/Holixus/nanopromise.svg?branch=cancellable
[coveralls-url]: https://coveralls.io/r/Holixus/nanopromise

[david-image]: http://img.shields.io/david/Holixus/nanopromise.svg?style=flat-square
[david-image]: http://img.shields.io/david/Holixus/nanopromise.svg
[david-url]: https://david-dm.org/Holixus/nanopromise

[license-image]: http://img.shields.io/npm/l/nanopromise.svg?style=flat-square
[license-image]: http://img.shields.io/npm/l/nanopromise.svg
[license-url]: LICENSE

[downloads-image]: http://img.shields.io/npm/dm/nanopromise.svg?style=flat-square
[downloads-image]: http://img.shields.io/npm/dm/nanopromise.svg
[downloads-url]: https://npmjs.org/package/nanopromise
21 changes: 14 additions & 7 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
module.exports = (function (onIdle, queue) {"use strict";

function atoa() {
for (var a = [], as = arguments, i = 0, n = as.length; i < n; ++i)
a.push(as[i]);
return a;
}

function Arguments(a) {
if (a)
for (var n = this.length = a.length, i = 0; i < n; ++i)
Expand Down Expand Up @@ -101,7 +107,7 @@ function execAll(arr, resolve, reject) {

function sub(i, o) {
if (thenable(o, function (v) {
results[i] = arguments.length > 1 ? new Arguments(arguments): v;
results[i] = arguments.length > 1 ? new Arguments(atoa.apply(null, arguments)): v;
if (!--refs)
resolve(results);
}, reject)) {
Expand Down Expand Up @@ -138,18 +144,19 @@ function Pending(executor) {
if (r === CANCEL_REASON)
if (cancel)
cancel();
_done(arguments, 0);
_done(atoa.apply(null, arguments), 0);
},
_resolve = function (v) {
if (v === self)
throw TypeError();
var args = atoa.apply(null, arguments);
if (arguments.length > 1)
execAll(arguments, function (arr) {
execAll(args, function (arr) {
_done(arr, 1);
}, _reject);
else
if (!thenable(v, _resolve, _reject))
_done(arguments, 1);
_done(args, 1);
};

this.then = function (res, rej) {
Expand Down Expand Up @@ -184,7 +191,7 @@ Pending.prototype = {
finally: function (cb) {
return this.then(function () {
cb();
return new Arguments(arguments);
return new Arguments(atoa.apply(null, arguments));
}, function (r) {
cb();
throw r;
Expand Down Expand Up @@ -241,15 +248,15 @@ Pending.race = function (arr) {
};

Pending.resolve = function () {
var args = arguments;
var args = atoa.apply(null, arguments);
return new Pending(function (resolve, reject) {
resolve.apply(null, args);
});
};

Pending.reject = function () {
var o = Object.create(Pending.prototype);
o.then = ReedThen(0, arguments);
o.then = ReedThen(0, atoa.apply(null, arguments));
return o;
};

Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "nanopromise",
"version": "1.1.5",
"description": "Promise/A+ realization",
"version": "1.1.6",
"description": "A small Promise/A++ node module",
"main": "index.js",
"devDependencies": {
"promises-aplus-tests": "*",
Expand Down

0 comments on commit b6e5b4b

Please sign in to comment.