diff options
author | cjihrig <cjihrig@gmail.com> | 2015-02-23 17:32:18 -0500 |
---|---|---|
committer | cjihrig <cjihrig@gmail.com> | 2015-02-24 10:14:24 -0500 |
commit | ed3b057e9fb8fa0ca9d47bcd9ea831ae1e3382d0 (patch) | |
tree | 4ee53724f0b9bef40649725da4a81276321eda6d /test/parallel/test-util-format.js | |
parent | da730c76e98fb9fd18dac445dafbbec74d79f802 (diff) | |
download | android-node-v8-ed3b057e9fb8fa0ca9d47bcd9ea831ae1e3382d0.tar.gz android-node-v8-ed3b057e9fb8fa0ca9d47bcd9ea831ae1e3382d0.tar.bz2 android-node-v8-ed3b057e9fb8fa0ca9d47bcd9ea831ae1e3382d0.zip |
util: handle symbols properly in format()
Currently, if util.format() is called with a string as its first
argument, and a Symbol as one of the subsequent arguments, an
exception is thrown due to an attempted implicit string conversion.
This commit causes Symbols to be explicitly converted.
Fixes: https://github.com/iojs/io.js/issues/927
PR-URL: https://github.com/iojs/io.js/pull/931
Reviewed-By: Domenic Denicola <domenic@domenicdenicola.com>
Diffstat (limited to 'test/parallel/test-util-format.js')
-rw-r--r-- | test/parallel/test-util-format.js | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/test/parallel/test-util-format.js b/test/parallel/test-util-format.js index 446e11e98d..7155094198 100644 --- a/test/parallel/test-util-format.js +++ b/test/parallel/test-util-format.js @@ -1,6 +1,7 @@ var common = require('../common'); var assert = require('assert'); var util = require('util'); +var symbol = Symbol('foo'); assert.equal(util.format(), ''); assert.equal(util.format(''), ''); @@ -14,6 +15,15 @@ assert.equal(util.format('test'), 'test'); // CHECKME this is for console.log() compatibility - but is it *right*? assert.equal(util.format('foo', 'bar', 'baz'), 'foo bar baz'); +// ES6 Symbol handling +assert.equal(util.format(symbol), 'Symbol(foo)'); +assert.equal(util.format('foo', symbol), 'foo Symbol(foo)'); +assert.equal(util.format('%s', symbol), 'Symbol(foo)'); +assert.equal(util.format('%j', symbol), 'undefined'); +assert.throws(function() { + util.format('%d', symbol); +}, TypeError); + assert.equal(util.format('%d', 42.0), '42'); assert.equal(util.format('%d', 42), '42'); assert.equal(util.format('%s', 42), '42'); |