9 ms·
2. JSON.stringify(object)
by petre 5y ago
2. JSON.stringify(object)
- hutzlibu 5y agoBut isn't the point that you want to detect what the foreign code does? So your solution would require inject your code into the code that wants to hide from you ... ?
- lmm 5y agoI think the idea is you patch the console to display the objects without calling their toString methods.
- BoorishBears 5y agoI don't think that works I might be off here, but I imagine console.log early exits if there's no console open, so it doesn't call toString If that's the case you can just write to the console in a loop and immediately know if one is open
- lmm 5y ago> I might be off here, but I imagine console.log early exits if there's no console open, so it doesn't call toString The point is to avoid calling toString when the console is open, by using some other way of displaying logged values.
- BoorishBears 5y agoI'm saying you can't avoid calling toString. Their code will call console.log(object) every X ticks. As soon as you open the console, console.log fires instead of early exiting => object.toString is called => they know the console is open
- sroussey 5y agoWell… you can on a lot of things. We never did .toString() on a whole lot. However, I was big on .displayName (as an override on .name which is found on functions) My memory is fuzzy, but I also had a different function I would call if frameworks added it so instead of “Object {}” it was “Backbone.Model {id=1}”. I put these in and used them in firebug extensions I wrote for frameworks. Later I asked chrome to add something, which is why there is a “enable custom formatters” option for the console. Really needs to work in the debugger though.
- BoorishBears 5y agoDo you not understand that it's not your code and that their code wants toString to be called? Someone else is writing code that they want to have react to the console opening. So they will intentionally force the call as soon as the console is open, as a result toString is called regardless of if you yourself have made a call to it.
- lmm 5y ago> console.log fires instead of early exiting => object.toString The point is that you patch the console to not do that.
- BoorishBears 5y agoHow does "JSON.stringify(object)" patch the console not to do that without first opening the console?