console: timeEnd() with no label emits warning

When timeEnd() provided with label that doesn't exists
it emits warning in the console, so developer get know about it.

PR-URL: https://github.com/nodejs/node/pull/5901
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
This commit is contained in:
Eugene Obrezkov authored and James M Snell committed 2016-04-25 08:28:23 -07:00
1 parent 6c1e5ad3ab
commit 1c84579031
2 files changed
+10 -5

No files matched your search

+3 -2
View File
@@ -67,9 +67,10 @@ Console.prototype.time = function(label) {
Console.prototype.timeEnd = function(label) {
var time = this._times.get(label);
const time = this._times.get(label);
if (!time) {
throw new Error(`No such label: ${label}`);
process.emitWarning(`No such label '${label}' for console.timeEnd()`);
return;
}
const duration = process.hrtime(time);
const ms = duration[0] * 1000 + duration[1] / 1e6;
+7 -3
View File
@@ -1,6 +1,6 @@
'use strict';
require('../common');
var assert = require('assert');
const common = require('../common');
const assert = require('assert');
assert.ok(process.stdout.writable);
assert.ok(process.stderr.writable);
@@ -8,7 +8,11 @@ assert.ok(process.stderr.writable);
assert.equal('number', typeof process.stdout.fd);
assert.equal('number', typeof process.stderr.fd);
assert.throws(function() {
assert.doesNotThrow(function() {
process.once('warning', common.mustCall((warning) => {
assert(/no such label/.test(warning.message));
}));
console.timeEnd('no such label');
});