doc: replace function expressions with arrows
authorBenjamin Gruenbaum <inglor@gmail.com>
Sun, 24 Jan 2016 09:15:51 +0000 (11:15 +0200)
committerMyles Borins <mborins@us.ibm.com>
Wed, 2 Mar 2016 22:01:11 +0000 (14:01 -0800)
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 <me@silverwind.io>
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
13 files changed:
doc/api/addons.markdown
doc/api/assert.markdown
doc/api/debugger.markdown
doc/api/domain.markdown
doc/api/events.markdown
doc/api/fs.markdown
doc/api/modules.markdown
doc/api/process.markdown
doc/api/readline.markdown
doc/api/repl.markdown
doc/api/stream.markdown
doc/api/util.markdown
doc/api/zlib.markdown

index 986c151..f0ec1c3 100644 (file)
@@ -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:
 
 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`:
 
 
 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');
 
 // test.js
 const addon = require('./build/Release/addon');
 
-addon(function(msg){
+addon((msg) => {
   console.log(msg); // 'hello world'
 });
 ```
   console.log(msg); // 'hello world'
 });
 ```
index 0a9fa36..44dafc2 100644 (file)
@@ -139,7 +139,7 @@ matching error type in the assertion:
 
 ```js
 assert.doesNotThrow(
 
 ```js
 assert.doesNotThrow(
-  function() {
+  () => {
     throw new TypeError('Wrong value');
   },
   SyntaxError
     throw new TypeError('Wrong value');
   },
   SyntaxError
@@ -151,7 +151,7 @@ However, the following will result in an `AssertionError` with the message
 
 ```js
 assert.doesNotThrow(
 
 ```js
 assert.doesNotThrow(
-  function() {
+  () => {
     throw new TypeError('Wrong value');
   },
   TypeError
     throw new TypeError('Wrong value');
   },
   TypeError
@@ -164,7 +164,7 @@ message:
 
 ```js
 assert.doesNotThrow(
 
 ```js
 assert.doesNotThrow(
-  function() {
+  () => {
     throw new TypeError('Wrong value');
   },
   TypeError,
     throw new TypeError('Wrong value');
   },
   TypeError,
@@ -359,7 +359,7 @@ Validate instanceof using constructor:
 
 ```js
 assert.throws(
 
 ```js
 assert.throws(
-  function() {
+  () => {
     throw new Error('Wrong value');
   },
   Error
     throw new Error('Wrong value');
   },
   Error
@@ -370,7 +370,7 @@ Validate error message using [`RegExp`][]:
 
 ```js
 assert.throws(
 
 ```js
 assert.throws(
-  function() {
+  () => {
     throw new Error('Wrong value');
   },
   /value/
     throw new Error('Wrong value');
   },
   /value/
@@ -381,7 +381,7 @@ Custom error validation:
 
 ```js
 assert.throws(
 
 ```js
 assert.throws(
-  function() {
+  () => {
     throw new Error('Wrong value');
   },
   function(err) {
     throw new Error('Wrong value');
   },
   function(err) {
index 0973f5d..a4dbaa3 100644 (file)
@@ -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;
 connecting... ok
 break in /home/indutny/Code/git/indutny/myscript.js:1
   1 x = 5;
-  2 setTimeout(function () {
+  2 setTimeout(() => {
   3   debugger;
 debug>
 ```
   3   debugger;
 debug>
 ```
@@ -31,7 +31,7 @@ For example, suppose `myscript.js` is written as:
 ```js
 // myscript.js
 x = 5;
 ```js
 // myscript.js
 x = 5;
-setTimeout(function () {
+setTimeout(() => {
   debugger;
   console.log('world');
 }, 1000);
   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;
 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;
   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
   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);
   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
 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
  23   return 'hello from module';
  24 };
  25
index 91fbe56..9321b38 100644 (file)
@@ -349,7 +349,7 @@ thrown will be routed to the domain's `'error'` event.
 const d = domain.create();
 
 function readSomeFile(filename, cb) {
 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);
   }));
     // 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) {
 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.
     // 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.
index 3aa996a..0afd583 100644 (file)
@@ -37,7 +37,7 @@ function MyEmitter() {
 util.inherits(MyEmitter, EventEmitter);
 
 const myEmitter = new MyEmitter();
 util.inherits(MyEmitter, EventEmitter);
 
 const myEmitter = new MyEmitter();
-myEmitter.on('event', function() {
+myEmitter.on('event', () => {
   console.log('an event occurred!');
 });
 myEmitter.emit('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();
 class MyEmitter extends EventEmitter {}
 
 const myEmitter = new MyEmitter();
-myEmitter.on('event', function() {
+myEmitter.on('event', () => {
   console.log('an event occurred!');
 });
 myEmitter.emit('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
 `event`.
 
 ```js
-var callback = function(stream) {
+var callback = (stream) => {
   console.log('someone connected!');
 };
 server.on('connection', callback);
   console.log('someone connected!');
 };
 server.on('connection', callback);
index 6f3955d..69e4ab0 100644 (file)
@@ -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
 `/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');
 });
 ```
   console.log(err ? 'no access!' : 'can read/write');
 });
 ```
index 09a255a..376feb3 100644 (file)
@@ -20,13 +20,10 @@ The contents of `circle.js`:
 ```js
 const PI = Math.PI;
 
 ```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
 ```
 
 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
 
 ```js
 // assigning to exports will not modify module, must use module.exports
-module.exports = function(width) {
+module.exports = (width) => {
   return {
   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(...) {
   // ...
 ```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
     // 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;
 }
 ```
   return module;
 }
 ```
index 55946d0..6027cf4 100644 (file)
@@ -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
 
 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.
 
 `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
 This API is hazardous.  If you do this:
 
 ```js
-maybeSync(true, function() {
+maybeSync(true, () => {
   foo();
 });
 bar();
   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
 For example, a `console.log` equivalent could look like this:
 
 ```js
-console.log = function(msg) {
+console.log = (msg) => {
   process.stdout.write(`${msg}\n`);
 };
 ```
   process.stdout.write(`${msg}\n`);
 };
 ```
index 62409b0..1e32507 100644 (file)
@@ -266,7 +266,7 @@ const rl = readline.createInterface({
   input: fs.createReadStream('sample.txt')
 });
 
   input: fs.createReadStream('sample.txt')
 });
 
-rl.on('line', function (line) {
+rl.on('line', (line) => {
   console.log('Line from file:', line);
 });
 ```
   console.log('Line from file:', line);
 });
 ```
index e9f2bfc..17757bf 100644 (file)
@@ -15,7 +15,7 @@ mjr:~$ node
 Type '.help' for options.
 > a = [ 1, 2, 3];
 [ 1, 2, 3 ]
 Type '.help' for options.
 > a = [ 1, 2, 3];
 [ 1, 2, 3 ]
-> a.forEach(function (v){
+> a.forEach((v) => {
 ...   console.log(v);
 ...   });
 1
 ...   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
 ```
 > var obj = {foo: 'this will not show up in the inspect() output'};
 undefined
-> obj.inspect = function() {
+> obj.inspect = () => {
 ...   return {bar: 'baz'};
 ... };
 [Function]
 ...   return {bar: 'baz'};
 ... };
 [Function]
index 4d957fb..238b9cd 100644 (file)
@@ -925,18 +925,17 @@ function SourceWrapper(options) {
   Readable.call(this, options);
 
   this._source = getLowlevelSourceObject();
   Readable.call(this, options);
 
   this._source = getLowlevelSourceObject();
-  var self = this;
 
   // Every time there's data, we push it into the internal buffer.
 
   // 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 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
   };
 
   // When the source ends, we push the EOF-signaling `null` chunk
-  this._source.onend = function() {
-    self.push(null);
+  this._source.onend = () => {
+    this.push(null);
   };
 }
 
   };
 }
 
index 9633e0e..e270276 100644 (file)
@@ -58,7 +58,7 @@ Marks that a method should not be used any more.
 ```js
 const util = require('util');
 
 ```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');
   }
   for (var i = 0, len = arguments.length; i < len; ++i) {
     process.stdout.write(arguments[i] + '\n');
   }
index 61a2deb..60cd714 100644 (file)
@@ -29,16 +29,20 @@ the convenience methods.
 
 ```js
 const input = '.................................';
 
 ```js
 const input = '.................................';
-zlib.deflate(input, function(err, buffer) {
+zlib.deflate(input, (err, buffer) => {
   if (!err) {
     console.log(buffer.toString('base64'));
   if (!err) {
     console.log(buffer.toString('base64'));
+  } else {
+    // handle error
   }
 });
 
 const buffer = new Buffer('eJzT0yMAAGTvBe8=', 'base64');
   }
 });
 
 const buffer = new Buffer('eJzT0yMAAGTvBe8=', 'base64');
-zlib.unzip(buffer, function(err, buffer) {
+zlib.unzip(buffer, (err, buffer) => {
   if (!err) {
     console.log(buffer.toString());
   if (!err) {
     console.log(buffer.toString());
+  } else {
+    // handle error
   }
 });
 ```
   }
 });
 ```