getOwnPropertyDescriptor side effects

Boris Zbarsky bzbarsky at mit.edu
Wed Jan 11 20:30:30 UTC 2017


On 1/11/17 3:12 PM, Isiah Meadows wrote:
> Okay. The error stack being constructed that early is odd, though.

I'm not sure I follow.  The error stack in SpiderMonkey and V8 (and 
JavaScriptCore too, afaict) is captured at the point when the Error 
object is created.  The captured thing is information that can be used 
to construct a stack string later.

Then getting .stack constructs the stack string.  This operation is 
somewhat expensive, so is deferred until someone asks.

In V8, the stringification process includes an explicit 
script-modifiable hook: the "prepareStackTrace" property of the Error 
constructor.

Is the odd part the stack capture during Error object construction? 
Were you expecting it to only be captured at the throw point?

-Boris


More information about the es-discuss mailing list