summaryrefslogtreecommitdiff
path: root/test/parallel/test-util-format.js
diff options
context:
space:
mode:
authorcjihrig <cjihrig@gmail.com>2015-02-23 17:32:18 -0500
committercjihrig <cjihrig@gmail.com>2015-02-24 10:14:24 -0500
commited3b057e9fb8fa0ca9d47bcd9ea831ae1e3382d0 (patch)
tree4ee53724f0b9bef40649725da4a81276321eda6d /test/parallel/test-util-format.js
parentda730c76e98fb9fd18dac445dafbbec74d79f802 (diff)
downloadandroid-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.js10
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');