From 5fb533522cec66d02e18a7e0b54869b715a25af6 Mon Sep 17 00:00:00 2001 From: Benjamin Gruenbaum Date: Sun, 24 Jan 2016 11:15:51 +0200 Subject: [PATCH] doc: replace function expressions with arrows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit replaces multiple usages of `function(){}` with ES2015 arrow functions in places it was forgotten earlier. The goal is to make the docs more consistent since other functions were already replaced with ES2015 arrows. In addition, it fixes invalid syntax in modules.markdown to valid syntax as well as remove `var self = this` pattern usages in the code where they are now possible to avoid through arrow functions. PR-URL: https://github.com/nodejs/node/pull/4832 Reviewed-By: Roman Reiss Reviewed-By: Сковорода Никита Андреевич Reviewed-By: James M Snell --- doc/api/addons.markdown | 6 ++++-- doc/api/assert.markdown | 12 ++++++------ doc/api/debugger.markdown | 12 ++++++------ doc/api/domain.markdown | 4 ++-- doc/api/events.markdown | 6 +++--- doc/api/fs.markdown | 2 +- doc/api/modules.markdown | 19 +++++++------------ doc/api/process.markdown | 6 +++--- doc/api/readline.markdown | 2 +- doc/api/repl.markdown | 4 ++-- doc/api/stream.markdown | 11 +++++------ doc/api/util.markdown | 2 +- doc/api/zlib.markdown | 8 ++++++-- 13 files changed, 47 insertions(+), 47 deletions(-) diff --git a/doc/api/addons.markdown b/doc/api/addons.markdown index 986c151097ee78..f0ec1c3a1e2a91 100644 --- a/doc/api/addons.markdown +++ b/doc/api/addons.markdown @@ -44,7 +44,9 @@ be used as a starting-point for your own Addon. This "Hello world" example is a simple Addon, written in C++, that is the equivalent of the following JavaScript code: - module.exports.hello = function() { return 'world'; }; +```js +module.exports.hello = () => 'world'; +``` First, create the file `hello.cc`: @@ -368,7 +370,7 @@ To test it, run the following JavaScript: // test.js const addon = require('./build/Release/addon'); -addon(function(msg){ +addon((msg) => { console.log(msg); // 'hello world' }); ``` diff --git a/doc/api/assert.markdown b/doc/api/assert.markdown index 0a9fa36d069f18..44dafc2fc114b0 100644 --- a/doc/api/assert.markdown +++ b/doc/api/assert.markdown @@ -139,7 +139,7 @@ matching error type in the assertion: ```js assert.doesNotThrow( - function() { + () => { throw new TypeError('Wrong value'); }, SyntaxError @@ -151,7 +151,7 @@ However, the following will result in an `AssertionError` with the message ```js assert.doesNotThrow( - function() { + () => { throw new TypeError('Wrong value'); }, TypeError @@ -164,7 +164,7 @@ message: ```js assert.doesNotThrow( - function() { + () => { throw new TypeError('Wrong value'); }, TypeError, @@ -359,7 +359,7 @@ Validate instanceof using constructor: ```js assert.throws( - function() { + () => { throw new Error('Wrong value'); }, Error @@ -370,7 +370,7 @@ Validate error message using [`RegExp`][]: ```js assert.throws( - function() { + () => { throw new Error('Wrong value'); }, /value/ @@ -381,7 +381,7 @@ Custom error validation: ```js assert.throws( - function() { + () => { throw new Error('Wrong value'); }, function(err) { diff --git a/doc/api/debugger.markdown b/doc/api/debugger.markdown index 0973f5dbbc552d..a4dbaa3903cae1 100644 --- a/doc/api/debugger.markdown +++ b/doc/api/debugger.markdown @@ -15,7 +15,7 @@ debug; a prompt will be displayed indicating successful launch of the debugger: connecting... ok break in /home/indutny/Code/git/indutny/myscript.js:1 1 x = 5; - 2 setTimeout(function () { + 2 setTimeout(() => { 3 debugger; debug> ``` @@ -31,7 +31,7 @@ For example, suppose `myscript.js` is written as: ```js // myscript.js x = 5; -setTimeout(function () { +setTimeout(() => { debugger; console.log('world'); }, 1000); @@ -46,19 +46,19 @@ Once the debugger is run, a breakpoint will occur at line 4: connecting... ok break in /home/indutny/Code/git/indutny/myscript.js:1 1 x = 5; - 2 setTimeout(function () { + 2 setTimeout(() => { 3 debugger; debug> cont < hello break in /home/indutny/Code/git/indutny/myscript.js:3 1 x = 5; - 2 setTimeout(function () { + 2 setTimeout(() => { 3 debugger; 4 console.log('world'); 5 }, 1000); debug> next break in /home/indutny/Code/git/indutny/myscript.js:4 - 2 setTimeout(function () { + 2 setTimeout(() => { 3 debugger; 4 console.log('world'); 5 }, 1000); @@ -136,7 +136,7 @@ Warning: script 'mod.js' was not loaded yet. debug> c break in test/fixtures/break-in-module/mod.js:23 21 - 22 exports.hello = function() { + 22 exports.hello = () => { 23 return 'hello from module'; 24 }; 25 diff --git a/doc/api/domain.markdown b/doc/api/domain.markdown index 91fbe566f7b6a8..9321b38506c3af 100644 --- a/doc/api/domain.markdown +++ b/doc/api/domain.markdown @@ -349,7 +349,7 @@ thrown will be routed to the domain's `'error'` event. const d = domain.create(); function readSomeFile(filename, cb) { - fs.readFile(filename, 'utf8', d.bind(function(er, data) { + fs.readFile(filename, 'utf8', d.bind((er, data) => { // if this throws, it will also be passed to the domain return cb(er, data ? JSON.parse(data) : null); })); @@ -380,7 +380,7 @@ with a single error handler in a single place. const d = domain.create(); function readSomeFile(filename, cb) { - fs.readFile(filename, 'utf8', d.intercept(function(data) { + fs.readFile(filename, 'utf8', d.intercept((data) => { // note, the first argument is never passed to the // callback since it is assumed to be the 'Error' argument // and thus intercepted by the domain. diff --git a/doc/api/events.markdown b/doc/api/events.markdown index 3aa996a95d05ef..0afd583ebc35d7 100644 --- a/doc/api/events.markdown +++ b/doc/api/events.markdown @@ -37,7 +37,7 @@ function MyEmitter() { util.inherits(MyEmitter, EventEmitter); const myEmitter = new MyEmitter(); -myEmitter.on('event', function() { +myEmitter.on('event', () => { console.log('an event occurred!'); }); myEmitter.emit('event'); @@ -54,7 +54,7 @@ const EventEmitter = require('events'); class MyEmitter extends EventEmitter {} const myEmitter = new MyEmitter(); -myEmitter.on('event', function() { +myEmitter.on('event', () => { console.log('an event occurred!'); }); myEmitter.emit('event'); @@ -364,7 +364,7 @@ Removes the specified `listener` from the listener array for the specified `event`. ```js -var callback = function(stream) { +var callback = (stream) => { console.log('someone connected!'); }; server.on('connection', callback); diff --git a/doc/api/fs.markdown b/doc/api/fs.markdown index 6f3955d511b33c..69e4ab087278e7 100644 --- a/doc/api/fs.markdown +++ b/doc/api/fs.markdown @@ -239,7 +239,7 @@ argument will be populated. The following example checks if the file `/etc/passwd` can be read and written by the current process. ```js -fs.access('/etc/passwd', fs.R_OK | fs.W_OK, function (err) { +fs.access('/etc/passwd', fs.R_OK | fs.W_OK, (err) => { console.log(err ? 'no access!' : 'can read/write'); }); ``` diff --git a/doc/api/modules.markdown b/doc/api/modules.markdown index 09a255ab0faa48..376feb33df93b1 100644 --- a/doc/api/modules.markdown +++ b/doc/api/modules.markdown @@ -20,13 +20,10 @@ The contents of `circle.js`: ```js const PI = Math.PI; -exports.area = function (r) { - return PI * r * r; -}; +exports.area = (r) => PI * r * r; + +exports.circumference = (r) => 2 * PI * r; -exports.circumference = function (r) { - return 2 * PI * r; -}; ``` The module `circle.js` has exported the functions `area()` and @@ -53,11 +50,9 @@ The `square` module is defined in `square.js`: ```js // assigning to exports will not modify module, must use module.exports -module.exports = function(width) { +module.exports = (width) => { return { - area: function() { - return width * width; - } + area: () => width * width }; } ``` @@ -498,12 +493,12 @@ To illustrate the behavior, imagine this hypothetical implementation of ```js function require(...) { // ... - function (module, exports) { + ((module, exports) => { // Your module code here exports = some_func; // re-assigns exports, exports is no longer // a shortcut, and nothing is exported. module.exports = some_func; // makes your module export 0 - } (module, module.exports); + })(module, module.exports); return module; } ``` diff --git a/doc/api/process.markdown b/doc/api/process.markdown index 55946d026e7e69..6027cf4957984d 100644 --- a/doc/api/process.markdown +++ b/doc/api/process.markdown @@ -179,7 +179,7 @@ var resource = new SomeResource(); In cases like this, you may not want to track the rejection as a developer error like you would for other `'unhandledRejection'` events. To address -this, you can either attach a dummy `.catch(function() { })` handler to +this, you can either attach a dummy `.catch(() => { })` handler to `resource.loaded`, preventing the `'unhandledRejection'` event from being emitted, or you can use the [`'rejectionHandled'`][] event. @@ -750,7 +750,7 @@ function maybeSync(arg, cb) { This API is hazardous. If you do this: ```js -maybeSync(true, function() { +maybeSync(true, () => { foo(); }); bar(); @@ -986,7 +986,7 @@ A `Writable Stream` to `stdout` (on fd `1`). For example, a `console.log` equivalent could look like this: ```js -console.log = function(msg) { +console.log = (msg) => { process.stdout.write(`${msg}\n`); }; ``` diff --git a/doc/api/readline.markdown b/doc/api/readline.markdown index 62409b02b95c2b..1e32507b810db9 100644 --- a/doc/api/readline.markdown +++ b/doc/api/readline.markdown @@ -266,7 +266,7 @@ const rl = readline.createInterface({ input: fs.createReadStream('sample.txt') }); -rl.on('line', function (line) { +rl.on('line', (line) => { console.log('Line from file:', line); }); ``` diff --git a/doc/api/repl.markdown b/doc/api/repl.markdown index e9f2bfc654610e..17757bfb55397c 100644 --- a/doc/api/repl.markdown +++ b/doc/api/repl.markdown @@ -15,7 +15,7 @@ mjr:~$ node Type '.help' for options. > a = [ 1, 2, 3]; [ 1, 2, 3 ] -> a.forEach(function (v){ +> a.forEach((v) => { ... console.log(v); ... }); 1 @@ -139,7 +139,7 @@ For example, if you have defined an `inspect()` function on an object, like this ``` > var obj = {foo: 'this will not show up in the inspect() output'}; undefined -> obj.inspect = function() { +> obj.inspect = () => { ... return {bar: 'baz'}; ... }; [Function] diff --git a/doc/api/stream.markdown b/doc/api/stream.markdown index 4d957fbb0c06c0..238b9cdf324f83 100644 --- a/doc/api/stream.markdown +++ b/doc/api/stream.markdown @@ -925,18 +925,17 @@ function SourceWrapper(options) { Readable.call(this, options); this._source = getLowlevelSourceObject(); - var self = this; // Every time there's data, we push it into the internal buffer. - this._source.ondata = function(chunk) { + this._source.ondata = (chunk) => { // if push() returns false, then we need to stop reading from source - if (!self.push(chunk)) - self._source.readStop(); + if (!this.push(chunk)) + this._source.readStop(); }; // When the source ends, we push the EOF-signaling `null` chunk - this._source.onend = function() { - self.push(null); + this._source.onend = () => { + this.push(null); }; } diff --git a/doc/api/util.markdown b/doc/api/util.markdown index 9633e0e388dd8e..e2702762c797db 100644 --- a/doc/api/util.markdown +++ b/doc/api/util.markdown @@ -58,7 +58,7 @@ Marks that a method should not be used any more. ```js const util = require('util'); -exports.puts = util.deprecate(function() { +exports.puts = util.deprecate(() => { for (var i = 0, len = arguments.length; i < len; ++i) { process.stdout.write(arguments[i] + '\n'); } diff --git a/doc/api/zlib.markdown b/doc/api/zlib.markdown index 61a2deb35a614e..60cd7145abbbfb 100644 --- a/doc/api/zlib.markdown +++ b/doc/api/zlib.markdown @@ -29,16 +29,20 @@ the convenience methods. ```js const input = '.................................'; -zlib.deflate(input, function(err, buffer) { +zlib.deflate(input, (err, buffer) => { if (!err) { console.log(buffer.toString('base64')); + } else { + // handle error } }); const buffer = new Buffer('eJzT0yMAAGTvBe8=', 'base64'); -zlib.unzip(buffer, function(err, buffer) { +zlib.unzip(buffer, (err, buffer) => { if (!err) { console.log(buffer.toString()); + } else { + // handle error } }); ```