[Pkg-javascript-commits] [node-q] 03/20: Imported Upstream version 1.0.1
Sebastiaan Couwenberg
sebastic at moszumanska.debian.org
Sun Mar 1 12:36:26 UTC 2015
This is an automated email from the git hooks/post-receive script.
sebastic pushed a commit to branch master
in repository node-q.
commit 13818bcb8bda29674d96e4165e381cd8d76f47dc
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date: Sat Feb 28 22:35:23 2015 +0100
Imported Upstream version 1.0.1
---
CHANGES.md | 13 ++++++++++++
LICENSE | 3 +--
README.md | 11 ++++++++--
package.json | 2 +-
q.js | 67 ++++++++++++++++--------------------------------------------
5 files changed, 42 insertions(+), 54 deletions(-)
diff --git a/CHANGES.md b/CHANGES.md
index f10fcc8..4b91dfc 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,5 +1,18 @@
<!-- vim:ts=4:sts=4:sw=4:et:tw=70 -->
+## 1.0.1
+
+ - Adds support for `Q.Promise`, which implements common usage of the
+ ES6 `Promise` constructor and its methods. `Promise` does not have
+ a valid promise constructor and a proper implementation awaits
+ version 2 of Q.
+ - Removes the console stopgap for a promise inspector. This no longer
+ works with any degree of reliability.
+ - Fixes support for content security policies that forbid eval. Now
+ using the `StopIteration` global to distinguish SpiderMonkey
+ generators from ES6 generators, assuming that they will never
+ coexist.
+
## 1.0.0
:cake: This is all but a re-release of version 0.9, which has settled
diff --git a/LICENSE b/LICENSE
index 76c5fe4..8a706b5 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,5 +1,4 @@
-
-Copyright 2009–2012 Kristopher Michael Kowal. All rights reserved.
+Copyright 2009–2014 Kristopher Michael Kowal. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
diff --git a/README.md b/README.md
index c0f513c..bdd4168 100644
--- a/README.md
+++ b/README.md
@@ -5,6 +5,13 @@
align="right" alt="Promises/A+ logo" />
</a>
+*This is Q version 1, from the `v1` branch in Git. This documentation applies to
+the latest of both the version 1 and version 0.9 release trains. These releases
+are stable. There will be no further releases of 0.9 after 0.9.7 which is nearly
+equivalent to version 1.0.0. All further releases of `q@~1.0` will be backward
+compatible. The version 2 release train introduces significant but
+backward-incompatible changes and is experimental at this time.*
+
If a function cannot return a value or throw an exception without
blocking, it can return a promise instead. A promise is an object
that represents the return value or the thrown exception that the
@@ -804,10 +811,10 @@ to many users, you should probably keep it off. But in development, go for it!
You can view the results of the Q test suite [in your browser][tests]!
-[tests]: https://rawgithub.com/kriskowal/q/master/spec/q-spec.html
+[tests]: https://rawgithub.com/kriskowal/q/v1/spec/q-spec.html
## License
-Copyright 2009–2013 Kristopher Michael Kowal
+Copyright 2009–2014 Kristopher Michael Kowal
MIT License (enclosed)
diff --git a/package.json b/package.json
index ed22194..1e66b76 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "q",
- "version": "1.0.0",
+ "version": "1.0.1",
"description": "A library for promises (CommonJS/Promises/A,B,D)",
"homepage": "https://github.com/kriskowal/q",
"author": "Kris Kowal <kris at cixar.com> (https://github.com/kriskowal)",
diff --git a/q.js b/q.js
index 5ed1dba..df36027 100644
--- a/q.js
+++ b/q.js
@@ -324,22 +324,6 @@ if (typeof ReturnValue !== "undefined") {
};
}
-// Until V8 3.19 / Chromium 29 is released, SpiderMonkey is the only
-// engine that has a deployed base of browsers that support generators.
-// However, SM's generators use the Python-inspired semantics of
-// outdated ES6 drafts. We would like to support ES6, but we'd also
-// like to make it possible to use generators in deployed browsers, so
-// we also support Python-style generators. At some point we can remove
-// this block.
-var hasES6Generators;
-try {
- /* jshint evil: true, nonew: false */
- new Function("(function* (){ yield 1; })");
- hasES6Generators = true;
-} catch (e) {
- hasES6Generators = false;
-}
-
// long stack traces
var STACK_JUMP_SEPARATOR = "From previous event:";
@@ -640,6 +624,7 @@ defer.prototype.makeNodeResolver = function () {
* @returns a promise that may be resolved with the given resolve and reject
* functions, or rejected by a thrown exception in resolver
*/
+Q.Promise = promise; // ES6
Q.promise = promise;
function promise(resolver) {
if (typeof resolver !== "function") {
@@ -654,6 +639,11 @@ function promise(resolver) {
return deferred.promise;
}
+promise.race = race; // ES6
+promise.all = all; // ES6
+promise.reject = reject; // ES6
+promise.resolve = Q; // ES6
+
// XXX experimental. This method is a way to denote that a local value is
// serializable and should be immediately dispatched to a remote upon request,
// instead of passing a reference.
@@ -978,42 +968,14 @@ Promise.prototype.isRejected = function () {
// shimmed environments, this would naturally be a `Set`.
var unhandledReasons = [];
var unhandledRejections = [];
-var unhandledReasonsDisplayed = false;
var trackUnhandledRejections = true;
-function displayUnhandledReasons() {
- if (
- !unhandledReasonsDisplayed &&
- typeof window !== "undefined" &&
- window.console
- ) {
- console.warn("[Q] Unhandled rejection reasons (should be empty):",
- unhandledReasons);
- }
-
- unhandledReasonsDisplayed = true;
-}
-
-function logUnhandledReasons() {
- for (var i = 0; i < unhandledReasons.length; i++) {
- var reason = unhandledReasons[i];
- console.warn("Unhandled rejection reason:", reason);
- }
-}
function resetUnhandledRejections() {
unhandledReasons.length = 0;
unhandledRejections.length = 0;
- unhandledReasonsDisplayed = false;
if (!trackUnhandledRejections) {
trackUnhandledRejections = true;
-
- // Show unhandled rejection reasons if Node exits without handling an
- // outstanding rejection. (Note that Browserify presently produces a
- // `process` global without the `EventEmitter` `on` method.)
- if (typeof process !== "undefined" && process.on) {
- process.on("exit", logUnhandledReasons);
- }
}
}
@@ -1028,7 +990,6 @@ function trackRejection(promise, reason) {
} else {
unhandledReasons.push("(no stack) " + reason);
}
- displayUnhandledReasons();
}
function untrackRejection(promise) {
@@ -1052,9 +1013,6 @@ Q.getUnhandledReasons = function () {
Q.stopUnhandledRejectionTracking = function () {
resetUnhandledRejections();
- if (typeof process !== "undefined" && process.on) {
- process.removeListener("exit", logUnhandledReasons);
- }
trackUnhandledRejections = false;
};
@@ -1218,7 +1176,17 @@ function async(makeGenerator) {
// when verb is "throw", arg is an exception
function continuer(verb, arg) {
var result;
- if (hasES6Generators) {
+
+ // Until V8 3.19 / Chromium 29 is released, SpiderMonkey is the only
+ // engine that has a deployed base of browsers that support generators.
+ // However, SM's generators use the Python-inspired semantics of
+ // outdated ES6 drafts. We would like to support ES6, but we'd also
+ // like to make it possible to use generators in deployed browsers, so
+ // we also support Python-style generators. At some point we can remove
+ // this block.
+
+ if (typeof StopIteration === "undefined") {
+ // ES6 Generators
try {
result = generator[verb](arg);
} catch (exception) {
@@ -1230,6 +1198,7 @@ function async(makeGenerator) {
return when(result.value, callback, errback);
}
} else {
+ // SpiderMonkey Generators
// FIXME: Remove this case when SM does ES6 generators.
try {
result = generator[verb](arg);
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-q.git
More information about the Pkg-javascript-commits
mailing list