NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #171 most downloaded on npm
string representations of objects in node and the browser
Last release 2 years ago
no release in 18 months
Ships fairly regularly
a new release about every 5 months
Nearly every release is documented
notes for 38 of 39 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
39 releases · first in 2013
[Fix] avoid being fooled by a Symbol.toStringTag `fa5870d`
[actions] split out node 10-20, and 20+ `44395a8`
44395a8quoteStyle: properly escape only the containing quotes 5137f8fquoteStyle code 450680cquoteStyle escaping tests e997c59auto-changelog, es-value-fixtures, tape d5a469caud with npm audit fb7815fmock-property 11c817bOne column per quarter.
[readme] update badges `8a51e6b`
8a51e6b@ljharb/eslint-config, tape ef05f58error-cause, has-tostringtag, tape c0c6c26global is not defined d4d0965engines.node 17a352aglobalthis 9c08884error-cause 6af352dnpmignore 94e617dmock-property 2ac24d7tape 46125e5[Fix] in IE 8, global can !== window despite them being prototypes of each other `30d0859`
30d0859[Dev Deps] temporarily remove aud due to breaking change in transitive deps `2476845`
431bab2@ljharb/eslint-config, aud, tape fd4f619mock-property, tape b453f6cerror-cause e8ffc57tape 054b8b9aud due to breaking change in transitive deps 2476845glob, since v10.3.8+ requires a broken jackspeak 383fa5ejackspeak since 2.1.2+ depends on npm aliases, which kill the install process in npm < 6 68c244c[Fix] in eg FF 24, collections lack forEach `75fc226`
[Fix] use util.inspect for a custom inspection symbol method `e243bf2`
[Tests] use mock-property `4ec8893`
mock-property 4ec8893npmignore to autogenerate an npmignore file 07f868ceslint, @ljharb/eslint-config, aud, auto-changelog, tape b05244b@ljharb/eslint-config, error-cause, es-value-fixtures, functions-have-names, tape d037398848fe48[New] add numericSeparator boolean option `2d2d537`
[meta] add auto-changelog `7dbdd22`
auto-changelog 7dbdd22c8823bceslint, @ljharb/eslint-config, safe-publish-latest, tape 7532b12has-tostringtag to behave correctly in the presence of symbol shams 94abb5d5ed5102eslint, tape 37b2ad2sideEffects flag d341f90[New] customInspect: add symbol option, to mimic modern util.inspect behavior `e973a6e`
[Fix] handle core-js Symbol shams
[Fix] use a robust check for a boxed Symbol
[Fix] use a robust check for a boxed bigint
[New] respect Symbol.toStringTag on objects
WeakRef supportSymbol.toStringTag on objectsprepublishOnly script for npm 7+FUNDING.ymleslint, @ljharb/eslint-config, aud, tapenode/install instead of node/run; use codecov actiond8abb8anode/install instead of node/run; use codecov action 4bfec2eSymbol.toStringTag on objects 799b58fd6c5b37WeakRef support b6d898e918cdfcFUNDING.yml 0bb5fc5eslint, @ljharb/eslint-config, aud, tape 22c8dc0prepublishOnly script for npm 7+ e52ee09eslint 7c4e6fd[New] add enumerable properties to Function inspect result, per node’s assert
assertassertSymbol.prototype.toStringeslint, @ljharb/eslint-config, aud, core-jsrequire-allow-edits no longer requires an explicit github tokenpull_request_target eventnyc on all testsgroups test by removing propertygroupsd262251ee60c0301ac3e4c2d7746eslint, @ljharb/eslint-config, aud, core-js 70058deassert 6ab8faanyc on all tests 4c47372groups test by removing property f192069assert fd38e1bgroups 2ac6462eslint, @ljharb/eslint-config 44b59e2Symbol.prototype.toString f3c2074eslint 9411294require-allow-edits no longer requires an explicit github token 36c022055a39a6pull_request_target event f59fd3ceslint a492bec[New] add customInspect option, to disable custom inspect methods
indent option (#13)customInspect option, to disable custom inspect methodsmaxStringLength optiontoString method[Array] instead of just [Object]safe-publish-latesteslint, @ljharb/eslint-config, core-js, tape; add aud; loosen the core-js depindent option #274324cbbmaxStringLength option b3995cbcustomInspect option, to disable custom inspect methods 28b91793b28eca0d9c6c0eslint, @ljharb/eslint-config, core-js, tape; add aud 7c204f234ca9a0[Array] instead of just [Object] f74c82deslint, @ljharb/eslint-config, tape 1a8a5eatoString method 7cb5c6581ebdd4core-js dep e7472e8tape 699827esafe-publish-latest c5d2868@ljharb/eslint-config 9199501[New] add support for WeakMap and WeakSet
WeakMap and WeakSetisMap and isSet checksfunding fieldeslint, @ljharb/eslint-config, core-js, tapenpx aud in posttest19899eda00f0572698047node v12.7, v11.15, v10.16, v8.16, v6.17 589e87aWeakMap and WeakSet 3ddb3e427527bbutil.inspect.custom 36d47b9eslint, @ljharb/eslint-config, core-js, tape b614eaa7b7b176063af31isMap and isSet checks fc51047funding field 7f9953aa8b5425@ljharb/eslint-config 98df157bb69fd0npx aud in posttest 48383530.6 to allowed failures, because it won‘t build on travis 1bff32a[New] add support for boxed BigInt primitives
BigInt (#19)core-js, tapenode v10.0, v9.11, v8.11, v6.14, v4.9safer-buffer356c66anode v10.0, v9.11, v8.11, v6.14, v4.9 c77b65bBigInt 1ac548ed31b738core-js, tape ff9eff6safer-buffer 48cae12- [New] add quoteStyle option - [Tests] require 0.6 to pass - [Tests] add more test coverage
quoteStyle option[Fix] inspect(Object(-0)) should be “Object(-0)”, not “Object(0)”
inspect(Object(-0)) should be “Object(-0)”, not “Object(0)”node v9.3, v8.9, v6.12[New] add support for util.inspect.custom, in node only
util.inspect.custom, in node onlynode v8.8; use nvm install-latest-npm to ensure new npm doesn’t break old nodenpm run coveragecore-js, tapenpm run coverage 3b48fb271e24dbutil.inspect.custom, in node only. 20cca77node v8.6; use nvm install-latest-npm to ensure new npm doesn’t break old node 252952dnode v8.8 4aa868dcore-js, tape 59483d1[New] add support for arrays with additional object keys
node v8.2, v7.10, v6.11; fix new npm breaking on older nodestape[Robustness] cache Object.prototype.toString
Object.prototype.toStringlowbyte function every timetypeof instead of comparing to literal undefinedelsesvar declarations for debuggabilitynode v7.7, v6.10, v5.12, v4.8; improve test matrixtapenode v7.7, v6.10, v4.8; improve test matrix a2ddc15node v7.0, v6.9, v5.12, v4.6, io.js v3.3; improve test matrix a48949f3b8092aelses. 7255034lowbyte function every time. 81edd34521d345aca62654e440cdtypeof instead of comparing to literal undefined 5ca6f604e576e57540ae57f4ca84var declarations for debuggability 6f2c11eObject.prototype.toString df44a20tape 3ec714etape beb72d9[Fix] fix Boolean false object inspection. `#7`
false object inspection. #7[New] add support for inspecting String/Number/Boolean objects. `#6`
[New] add ES6 Map/Set support. `#4`
[Fix] Cache Object.prototype.hasOwnProperty in case it's deleted later. `1d0075d`
Make inspect work with symbol primitives and objects, including in node 0.11 and 0.12. `ddf1b94`
error inspect works properly `260a22d`
260a22d57269e8397ffe16905cc2385b615edc906d362d1d3e89b0f6b5308821cfd9e08d753fbc5c46a5b0eceeee12b91cpassing lowbyte interpolation test `b847511`
### Commits - sort keys `a07b19c`
a07b19c[] and {} instead of [ ] and { } `654c44b`
654c44bfailing undef/null test `1f88a00`
99cdfade3240331f88a007d345f3c3f7546ce25f73405c1ea703b0cea3422194ab737especial isElement() check `882768a`
Nothing published for this version
fix for ie<9, doesn't have hasOwnProperty `6b7d611`
[Function] for functions `ad5c485`
ad5c485Your coding agent can read these notes before it upgrades. Set up the MCP server →