From aabde9748803ac8ca7a1a0912b4df5042dd1f71a 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 arrow functions 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: Сковорода Никита Андреевич --- 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 fbaf5ef46fad37..2bbaf9049eb5fb 100644 --- a/doc/api/debugger.markdown +++ b/doc/api/debugger.markdown @@ -15,7 +15,7 @@ $ node debug myscript.js 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 @@ $ node debug myscript.js 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); @@ -135,7 +135,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 9a7a50d68c99d2..ebffa9f02da417 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 981125eecf12a6..21060d5be71a52 100644 --- a/doc/api/process.markdown +++ b/doc/api/process.markdown @@ -175,7 +175,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. @@ -720,7 +720,7 @@ function maybeSync(arg, cb) { This API is hazardous. If you do this: ```js -maybeSync(true, function() { +maybeSync(true, () => { foo(); }); bar(); @@ -954,7 +954,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 82abf3e8c325df..5a03e445885772 100644 --- a/doc/api/readline.markdown +++ b/doc/api/readline.markdown @@ -265,7 +265,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 d670ed4c1d6b37..86ece2c27ee0af 100644 --- a/doc/api/repl.markdown +++ b/doc/api/repl.markdown @@ -15,7 +15,7 @@ $ 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 3d7427baa6611b..48c4a619924706 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 6c7a9272f68196..54150d5dc915c6 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 } }); ```