[Pkg-javascript-commits] [node-regenerator-runtime] 01/03: New upstream version 0.10.1
Praveen Arimbrathodiyil
praveen at moszumanska.debian.org
Thu Dec 22 19:13:01 UTC 2016
This is an automated email from the git hooks/post-receive script.
praveen pushed a commit to branch master
in repository node-regenerator-runtime.
commit 41d5d4a604dd51fdb9e89965ff352836ad0f52b8
Author: Praveen Arimbrathodiyil <praveen at debian.org>
Date: Fri Dec 23 00:38:36 2016 +0530
New upstream version 0.10.1
---
README.md | 31 +++++++++++++++++++++++++++++++
package.json | 2 +-
runtime.js | 53 ++++++++++++++++++++++++++++++++++-------------------
3 files changed, 66 insertions(+), 20 deletions(-)
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..d93386a
--- /dev/null
+++ b/README.md
@@ -0,0 +1,31 @@
+# regenerator-runtime
+
+Standalone runtime for
+[Regenerator](https://github.com/facebook/regenerator)-compiled generator
+and `async` functions.
+
+To import the runtime as a module (recommended), either of the following
+import styles will work:
+```js
+// CommonJS
+const regeneratorRuntime = require("regenerator-runtime");
+
+// ECMAScript 2015
+import regeneratorRuntime from "regenerator-runtime";
+```
+
+To ensure that `regeneratorRuntime` is defined globally, either of the
+following styles will work:
+```js
+// CommonJS
+require("regenerator-runtime/runtime");
+
+// ECMAScript 2015
+import "regenerator-runtime/runtime";
+```
+
+To get the absolute file system path of `runtime.js`, evaluate the
+following expression:
+```js
+require("regenerator-runtime/path").path
+```
diff --git a/package.json b/package.json
index 062e891..df817dc 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "regenerator-runtime",
"author": "Ben Newman <bn at cs.stanford.edu>",
"description": "Runtime for Regenerator-compiled generator and async functions.",
- "version": "0.9.5",
+ "version": "0.10.1",
"main": "runtime-module.js",
"keywords": [
"regenerator",
diff --git a/runtime.js b/runtime.js
index b6f0f39..15fdacc 100644
--- a/runtime.js
+++ b/runtime.js
@@ -11,7 +11,8 @@
!(function(global) {
"use strict";
- var hasOwn = Object.prototype.hasOwnProperty;
+ var Op = Object.prototype;
+ var hasOwn = Op.hasOwnProperty;
var undefined; // More compressible than void 0.
var $Symbol = typeof Symbol === "function" ? Symbol : {};
var iteratorSymbol = $Symbol.iterator || "@@iterator";
@@ -35,8 +36,9 @@
runtime = global.regeneratorRuntime = inModule ? module.exports : {};
function wrap(innerFn, outerFn, self, tryLocsList) {
- // If outerFn provided, then outerFn.prototype instanceof Generator.
- var generator = Object.create((outerFn || Generator).prototype);
+ // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
+ var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
+ var generator = Object.create(protoGenerator.prototype);
var context = new Context(tryLocsList || []);
// The ._invoke method unifies the implementations of the .next,
@@ -82,10 +84,29 @@
function GeneratorFunction() {}
function GeneratorFunctionPrototype() {}
- var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype;
+ // This is a polyfill for %IteratorPrototype% for environments that
+ // don't natively support it.
+ var IteratorPrototype = {};
+ IteratorPrototype[iteratorSymbol] = function () {
+ return this;
+ };
+
+ var getProto = Object.getPrototypeOf;
+ var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
+ if (NativeIteratorPrototype &&
+ NativeIteratorPrototype !== Op &&
+ hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
+ // This environment has a native %IteratorPrototype%; use it instead
+ // of the polyfill.
+ IteratorPrototype = NativeIteratorPrototype;
+ }
+
+ var Gp = GeneratorFunctionPrototype.prototype =
+ Generator.prototype = Object.create(IteratorPrototype);
GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
GeneratorFunctionPrototype.constructor = GeneratorFunction;
- GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction";
+ GeneratorFunctionPrototype[toStringTagSymbol] =
+ GeneratorFunction.displayName = "GeneratorFunction";
// Helper for defining the .next, .throw, and .return methods of the
// Iterator interface in terms of a single ._invoke method.
@@ -122,17 +143,12 @@
// Within the body of any async function, `await x` is transformed to
// `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
- // `value instanceof AwaitArgument` to determine if the yielded value is
- // meant to be awaited. Some may consider the name of this method too
- // cutesy, but they are curmudgeons.
+ // `hasOwn.call(value, "__await")` to determine if the yielded value is
+ // meant to be awaited.
runtime.awrap = function(arg) {
- return new AwaitArgument(arg);
+ return { __await: arg };
};
- function AwaitArgument(arg) {
- this.arg = arg;
- }
-
function AsyncIterator(generator) {
function invoke(method, arg, resolve, reject) {
var record = tryCatch(generator[method], generator, arg);
@@ -141,8 +157,10 @@
} else {
var result = record.arg;
var value = result.value;
- if (value instanceof AwaitArgument) {
- return Promise.resolve(value.arg).then(function(value) {
+ if (value &&
+ typeof value === "object" &&
+ hasOwn.call(value, "__await")) {
+ return Promise.resolve(value.__await).then(function(value) {
invoke("next", value, resolve, reject);
}, function(err) {
invoke("throw", err, resolve, reject);
@@ -211,6 +229,7 @@
}
defineIteratorMethods(AsyncIterator.prototype);
+ runtime.AsyncIterator = AsyncIterator;
// Note that simple async functions are implemented on top of
// AsyncIterator objects; they just return a Promise for the value of
@@ -371,10 +390,6 @@
// unified ._invoke helper method.
defineIteratorMethods(Gp);
- Gp[iteratorSymbol] = function() {
- return this;
- };
-
Gp[toStringTagSymbol] = "Generator";
Gp.toString = function() {
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-regenerator-runtime.git
More information about the Pkg-javascript-commits
mailing list