summaryrefslogtreecommitdiff
path: root/docs/v3/scripts/async.js
diff options
context:
space:
mode:
Diffstat (limited to 'docs/v3/scripts/async.js')
-rw-r--r--docs/v3/scripts/async.js34
1 files changed, 31 insertions, 3 deletions
diff --git a/docs/v3/scripts/async.js b/docs/v3/scripts/async.js
index 67fec62..832ca57 100644
--- a/docs/v3/scripts/async.js
+++ b/docs/v3/scripts/async.js
@@ -1197,10 +1197,36 @@
var ARROW_FN_ARGS = /^(?:async\s+)?\(?\s*([^)=]+)\s*\)?(?:\s*=>)/;
var FN_ARG_SPLIT = /,/;
var FN_ARG = /(=.+)?(\s*)$/;
- var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;
+
+ function stripComments(string) {
+ let stripped = '';
+ let index = 0;
+ let endBlockComment = string.indexOf('*/');
+ while (index < string.length) {
+ if (string[index] === '/' && string[index+1] === '/') {
+ // inline comment
+ let endIndex = string.indexOf('\n', index);
+ index = (endIndex === -1) ? string.length : endIndex;
+ } else if ((endBlockComment !== -1) && (string[index] === '/') && (string[index+1] === '*')) {
+ // block comment
+ let endIndex = string.indexOf('*/', index);
+ if (endIndex !== -1) {
+ index = endIndex + 2;
+ endBlockComment = string.indexOf('*/', index);
+ } else {
+ stripped += string[index];
+ index++;
+ }
+ } else {
+ stripped += string[index];
+ index++;
+ }
+ }
+ return stripped;
+ }
function parseParams(func) {
- const src = func.toString().replace(STRIP_COMMENTS, '');
+ const src = stripComments(func.toString());
let match = src.match(FN_ARGS);
if (!match) {
match = src.match(ARROW_FN_ARGS);
@@ -1957,7 +1983,7 @@
* app.get('/cats', function(request, response) {
* var User = request.models.User;
* async.seq(
- * _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data))
+ * User.get.bind(User), // 'User.get' has signature (id, callback(err, data))
* function(user, fn) {
* user.getCats(fn); // 'getCats' has signature (callback(err, data))
* }
@@ -3591,6 +3617,8 @@
return memoized;
}
+ /* istanbul ignore file */
+
/**
* Calls `callback` on a later loop around the event loop. In Node.js this just
* calls `process.nextTick`. In the browser it will use `setImmediate` if