Skip to content
ECMAScript "ToPrimitive" algorithm. Provides ES5 and ES6 versions.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
helpers [Tests] remove `jscs` Dec 31, 2018
.npmrc Only apps should have lockfiles Jun 27, 2017
LICENSE Initial commit Mar 17, 2015
Makefile Add `make release` Mar 17, 2015
es2015.js [New] create ES2015 entry point/property, to replace ES6 Sep 21, 2018
es5.js [Fix] Ensure optional arguments are not part of the length. Dec 28, 2017
index.js [New] create ES2015 entry point/property, to replace ES6 Sep 21, 2018

es-to-primitive Version Badge

Build Status dependency status dev dependency status License Downloads

npm badge

ECMAScript “ToPrimitive” algorithm. Provides ES5 and ES2015 versions. When different versions of the spec conflict, the default export will be the latest version of the abstract operation. Alternative versions will also be available under an es5/es2015 exported property if you require a specific version.


var toPrimitive = require('es-to-primitive');
var assert = require('assert');

assert(toPrimitive(function () {}) === String(function () {}));

var date = new Date();
assert(toPrimitive(date) === String(date));

assert(toPrimitive({ valueOf: function () { return 3; } }) === 3);

assert(toPrimitive(['a', 'b', 3]) === String(['a', 'b', 3]));

var sym = Symbol();
assert(toPrimitive(Object(sym)) === sym);


Simply clone the repo, npm install, and run npm test

You can’t perform that action at this time.