| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
There was a problem hiding this comment.
Any reason for not using _extend?
Sorry, something went wrong.
There was a problem hiding this comment.
The type check has to be done again in that case.
Sorry, something went wrong.
There was a problem hiding this comment.
I doubt it will add a noticeable overhead but yes it makes sense.
Sorry, something went wrong.
There was a problem hiding this comment.
Sorry, something went wrong.
There was a problem hiding this comment.
Updated the use _extend as it will still be faster than Object.assign
Sorry, something went wrong.
There was a problem hiding this comment.
About the performance - just recently I heard that inspect came up in a flamegraph. Seems like people use it a lot. I am aware that setting the default options will not be a big thing but the first implementation (not changing inspect for console.*) used it a lot and that is why I decided to optimize it as well.
Sorry, something went wrong.
|
Not sure I like the complexity introduced here. Given that this is already flagged as semver-major, why not update it to 5 (I'd leave that value open to discussion, but it's certainly more useful than the current 2) everywhere via new defaults? |
Sorry, something went wrong.
|
@silverwind I do not see a big difference between 5 and unlimited. Most entries are not that deeply nested and if they are, you likely want to see everything. To prevent huge diffs, the max array entries option is way more efficient as this would otherwise be more difficult to handle. About the complexity: I am fine with showing everything as a new default for console.* and this would remove the complexity again. But it would be a more significant change and I tried to minimize the breaking change. For the repl it might be best to stay with the current default though. The reason is that some modules like fs have lots of nested elements and it would be be verbose otherwise. |
Sorry, something went wrong.
|
@jasnell what do you think about removing the limit for console.* as well? I guess most people would actually profit from that. |
Sorry, something went wrong.
|
Changing the default for console.* should be ok given that this is semver-major |
Sorry, something went wrong.
Currently inspecting the BufferList can result a maximum call stack size error. Adding a individual inspect function prevents this.
The current default is not ideal in most use cases. Therefore it is changed to showing unlimited depth in case util.inspect is called directly. The default is kept as before for console.log and similar. Using console.dir will now show a depth of up to five and console.assert / console.trace will show a unlimited depth.
Object.assign is currently very slow. Using Object.keys is much faster in v8 6.3.
|
I changed the code to default to unlimited for the console functions as well. CITGM https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/1179/ |
Sorry, something went wrong.
| } | ||
|
|
||
| [customInspectSymbol]() { | ||
| return `${this.constructor.name} { length: ${this.length} }`; |
There was a problem hiding this comment.
You could return { __proto__: Object.getPrototypeOf(this), length: this.length } which would also give coloring etc. for free.
Sorry, something went wrong.
There was a problem hiding this comment.
Using __proto__ will actually result in a `call stack size exceeded error. I decided to call inspect directly instead to highlight the color in case it is needed.
Sorry, something went wrong.
There was a problem hiding this comment.
Sorry, something went wrong.
Sorry, something went wrong.
There was a problem hiding this comment.
LGTM
Sorry, something went wrong.
There was a problem hiding this comment.
Can you please change the documentation of util.inspect (and add an entry to its history)?
Sorry, something went wrong.
| return ret; | ||
| } | ||
|
|
||
| [customInspectSymbol]() { |
There was a problem hiding this comment.
I’d just use util.inspect.custom here, it saves people looking at this code one round-trip to another file
Sorry, something went wrong.
There was a problem hiding this comment.
Done
Sorry, something went wrong.
Since the default for depth is changed to `Infinity` it is logical to change the %o default to the same as well. Using %o with `util.format` will now always print the whole object.
|
I updated the documentation and added the history entry. I also changed the %o default of util.format to also use Infinity as default. |
Sorry, something went wrong.
| * `depth` {number} Specifies the number visible nested Objects in an `object`. | ||
| This is useful to minimize the inspection output for large complicated | ||
| objects. To make it recurse indefinitely pass `null` or `Infinity`. Defaults | ||
| to `null`. |
There was a problem hiding this comment.
suggestion: Infinity instead of null to match the changelog?
Sorry, something went wrong.
The current default is not ideal in most use cases. Therefore it is changed to inspect objects to a maximum depth of 20 in case util.inspect is called with it's defaults. The default is kept at 2 when using console.log() and similar in the repl. PR-URL: nodejs#17907 Refs: nodejs#12693
Since the default for depth is changed to `20` it is logical to change the %o default as well. It will now always use the default depth. PR-URL: nodejs#17907 Refs: nodejs#12693
The current default is not ideal in most use cases. Therefore it is changed to inspect objects to a maximum depth of 20 in case util.inspect is called with it's defaults. The default is kept at 2 when using console.log() and similar in the repl. PR-URL: nodejs#17907 Refs: nodejs#12693 PR-URL: nodejs#22846 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Denys Otrishko <shishugi@gmail.com> Reviewed-By: Roman Reiss <me@silverwind.io>
Since the default for depth is changed to `20` it is logical to change the %o default as well. It will now always use the default depth. PR-URL: nodejs#17907 Refs: nodejs#12693 PR-URL: nodejs#22846 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Denys Otrishko <shishugi@gmail.com> Reviewed-By: Roman Reiss <me@silverwind.io>
| Back | FazBrowse Home | New Git URL |
Right now the defaults for util.inspect are often not ideal. This is a first step to improve those. I tried not to break to much and keep the current behavior for the repl and console.
Refs: #12693
Checklist
Affected core subsystem(s)
util, console