From: Vladimir Kurchatkin Date: Thu, 28 May 2015 14:01:56 +0000 (+0300) Subject: util: introduce `printDeprecationMessage` function X-Git-Tag: v2.3.0~57 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=628845b816262ddcf11d08815fb39a8d3d2bc077;p=platform%2Fupstream%2Fnodejs.git util: introduce `printDeprecationMessage` function `printDeprecationMessage` is used to deprecate modules and execution branches. PR-URL: https://github.com/nodejs/io.js/pull/1822 Reviewed-By: Ben Noordhuis --- diff --git a/lib/buffer.js b/lib/buffer.js index 1b9c684..ccd899d 100644 --- a/lib/buffer.js +++ b/lib/buffer.js @@ -3,6 +3,7 @@ const binding = process.binding('buffer'); const smalloc = process.binding('smalloc'); const util = require('util'); +const internalUtil = require('internal/util'); const alloc = smalloc.alloc; const truncate = smalloc.truncate; const sliceOnto = smalloc.sliceOnto; @@ -504,16 +505,7 @@ Buffer.prototype.write = function(string, offset, length, encoding) { // XXX legacy write(string, encoding, offset, length) - remove in v0.13 } else { - if (!writeWarned) { - if (process.throwDeprecation) - throw new Error(writeMsg); - else if (process.traceDeprecation) - console.trace(writeMsg); - else - console.error(writeMsg); - writeWarned = true; - } - + writeWarned = internalUtil.printDeprecationMessage(writeMsg, writeWarned); var swap = encoding; encoding = offset; offset = length >>> 0; diff --git a/lib/internal/util.js b/lib/internal/util.js new file mode 100644 index 0000000..7657633 --- /dev/null +++ b/lib/internal/util.js @@ -0,0 +1,18 @@ +'use strict'; + +exports.printDeprecationMessage = function(msg, warned) { + if (process.noDeprecation) + return true; + + if (warned) + return warned; + + if (process.throwDeprecation) + throw new Error(msg); + else if (process.traceDeprecation) + console.trace(msg); + else + console.error(msg); + + return true; +}; diff --git a/lib/sys.js b/lib/sys.js index 74143b5..a34ea0b 100644 --- a/lib/sys.js +++ b/lib/sys.js @@ -1,13 +1,10 @@ 'use strict'; -const util = require('util'); +const util = require('internal/util'); // the sys module was renamed to 'util'. // this shim remains to keep old programs working. // sys is deprecated and shouldn't be used -const setExports = util.deprecate(function() { - module.exports = util; -}, 'sys is deprecated. Use util instead.'); - -setExports(); +module.exports = require('util'); +util.printDeprecationMessage('sys is deprecated. Use util instead.'); diff --git a/lib/util.js b/lib/util.js index 401d55b..c4aea9d 100644 --- a/lib/util.js +++ b/lib/util.js @@ -2,6 +2,7 @@ const uv = process.binding('uv'); const Debug = require('vm').runInDebugContext('Debug'); +const internalUtil = require('internal/util'); const formatRegExp = /%[sdj%]/g; exports.format = function(f) { @@ -63,16 +64,7 @@ exports.deprecate = function(fn, msg) { var warned = false; function deprecated() { - if (!warned) { - if (process.throwDeprecation) { - throw new Error(msg); - } else if (process.traceDeprecation) { - console.trace(msg); - } else { - console.error(msg); - } - warned = true; - } + warned = internalUtil.printDeprecationMessage(msg, warned); return fn.apply(this, arguments); } diff --git a/node.gyp b/node.gyp index de0e47e..cbc536d 100644 --- a/node.gyp +++ b/node.gyp @@ -75,6 +75,7 @@ 'lib/internal/smalloc.js', 'lib/internal/socket_list.js', 'lib/internal/repl.js', + 'lib/internal/util.js', ], },