From 8a87b29034c663d073e2b6de766d3bee5c2e2d1e Mon Sep 17 00:00:00 2001 From: cjihrig Date: Wed, 27 Apr 2016 11:55:21 -0400 Subject: [PATCH] readline: remove deprecated methods MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit removes the deprecated exports getStringWidth(), stripVTControlCharacters(), and isFullWidthCodePoint(). It also removes codePointAt() in its entirety, as it was deprecated and not being used by core. Refs: https://github.com/nodejs/node/pull/3862 PR-URL: https://github.com/nodejs/node/pull/6423 Reviewed-By: Anna Henningsen Reviewed-By: Ben Noordhuis Reviewed-By: Brian White Reviewed-By: Сковорода Никита Андреевич Reviewed-By: James M Snell Reviewed-By: Sakthipriyan Vairamani --- lib/readline.js | 36 ---------------- test/parallel/test-readline-interface.js | 54 +++++++++++------------- 2 files changed, 25 insertions(+), 65 deletions(-) diff --git a/lib/readline.js b/lib/readline.js index 680ffbf2cd99a3..57a27a97705e73 100644 --- a/lib/readline.js +++ b/lib/readline.js @@ -10,7 +10,6 @@ const kHistorySize = 30; const util = require('util'); const debug = util.debuglog('readline'); -const internalUtil = require('internal/util'); const inherits = util.inherits; const Buffer = require('buffer').Buffer; const EventEmitter = require('events'); @@ -1042,38 +1041,3 @@ function clearScreenDown(stream) { stream.write('\x1b[0J'); } exports.clearScreenDown = clearScreenDown; - - -/** - * Returns the Unicode code point for the character at the - * given index in the given string. Similar to String.charCodeAt(), - * but this function handles surrogates (code point >= 0x10000). - */ - -function codePointAt(str, index) { - var code = str.charCodeAt(index); - var low; - if (0xd800 <= code && code <= 0xdbff) { // High surrogate - low = str.charCodeAt(index + 1); - if (!isNaN(low)) { - code = 0x10000 + (code - 0xd800) * 0x400 + (low - 0xdc00); - } - } - return code; -} -exports.codePointAt = internalUtil.deprecate(codePointAt, - 'readline.codePointAt is deprecated. ' + - 'Use String.prototype.codePointAt instead.'); - - -exports.getStringWidth = internalUtil.deprecate(getStringWidth, - 'getStringWidth is deprecated and will be removed.'); - - -exports.isFullWidthCodePoint = internalUtil.deprecate(isFullWidthCodePoint, - 'isFullWidthCodePoint is deprecated and will be removed.'); - - -exports.stripVTControlCharacters = internalUtil.deprecate( - stripVTControlCharacters, - 'stripVTControlCharacters is deprecated and will be removed.'); diff --git a/test/parallel/test-readline-interface.js b/test/parallel/test-readline-interface.js index ab0c6d8824b982..9a3b7f5ef3ec2f 100644 --- a/test/parallel/test-readline-interface.js +++ b/test/parallel/test-readline-interface.js @@ -1,9 +1,11 @@ +// Flags: --expose_internals 'use strict'; require('../common'); -var assert = require('assert'); -var readline = require('readline'); -var EventEmitter = require('events').EventEmitter; -var inherits = require('util').inherits; +const assert = require('assert'); +const readline = require('readline'); +const internalReadline = require('internal/readline'); +const EventEmitter = require('events').EventEmitter; +const inherits = require('util').inherits; function FakeInput() { EventEmitter.call(this); @@ -322,37 +324,31 @@ function isWarned(emitter) { } // wide characters should be treated as two columns. - assert.equal(readline.isFullWidthCodePoint('a'.charCodeAt(0)), false); - assert.equal(readline.isFullWidthCodePoint('あ'.charCodeAt(0)), true); - assert.equal(readline.isFullWidthCodePoint('谢'.charCodeAt(0)), true); - assert.equal(readline.isFullWidthCodePoint('고'.charCodeAt(0)), true); - assert.equal(readline.isFullWidthCodePoint(0x1f251), true); // surrogate - assert.equal(readline.codePointAt('ABC', 0), 0x41); - assert.equal(readline.codePointAt('あいう', 1), 0x3044); - assert.equal(readline.codePointAt('\ud800\udc00', 0), // surrogate - 0x10000); - assert.equal(readline.codePointAt('\ud800\udc00A', 2), // surrogate - 0x41); - assert.equal(readline.getStringWidth('abcde'), 5); - assert.equal(readline.getStringWidth('古池や'), 6); - assert.equal(readline.getStringWidth('ノード.js'), 9); - assert.equal(readline.getStringWidth('你好'), 4); - assert.equal(readline.getStringWidth('안녕하세요'), 10); - assert.equal(readline.getStringWidth('A\ud83c\ude00BC'), 5); // surrogate + assert.equal(internalReadline.isFullWidthCodePoint('a'.charCodeAt(0)), false); + assert.equal(internalReadline.isFullWidthCodePoint('あ'.charCodeAt(0)), true); + assert.equal(internalReadline.isFullWidthCodePoint('谢'.charCodeAt(0)), true); + assert.equal(internalReadline.isFullWidthCodePoint('고'.charCodeAt(0)), true); + assert.equal(internalReadline.isFullWidthCodePoint(0x1f251), true); + assert.equal(internalReadline.getStringWidth('abcde'), 5); + assert.equal(internalReadline.getStringWidth('古池や'), 6); + assert.equal(internalReadline.getStringWidth('ノード.js'), 9); + assert.equal(internalReadline.getStringWidth('你好'), 4); + assert.equal(internalReadline.getStringWidth('안녕하세요'), 10); + assert.equal(internalReadline.getStringWidth('A\ud83c\ude00BC'), 5); // check if vt control chars are stripped - assert.equal(readline + assert.equal(internalReadline .stripVTControlCharacters('\u001b[31m> \u001b[39m'), '> '); - assert.equal(readline + assert.equal(internalReadline .stripVTControlCharacters('\u001b[31m> \u001b[39m> '), '> > '); - assert.equal(readline + assert.equal(internalReadline .stripVTControlCharacters('\u001b[31m\u001b[39m'), ''); - assert.equal(readline + assert.equal(internalReadline .stripVTControlCharacters('> '), '> '); - assert.equal(readline.getStringWidth('\u001b[31m> \u001b[39m'), 2); - assert.equal(readline.getStringWidth('\u001b[31m> \u001b[39m> '), 4); - assert.equal(readline.getStringWidth('\u001b[31m\u001b[39m'), 0); - assert.equal(readline.getStringWidth('> '), 2); + assert.equal(internalReadline.getStringWidth('\u001b[31m> \u001b[39m'), 2); + assert.equal(internalReadline.getStringWidth('\u001b[31m> \u001b[39m> '), 4); + assert.equal(internalReadline.getStringWidth('\u001b[31m\u001b[39m'), 0); + assert.equal(internalReadline.getStringWidth('> '), 2); assert.deepStrictEqual(fi.listeners(terminal ? 'keypress' : 'data'), []);