Not formally, but it's straightforward:

At the time you call eval() or Function(), we capture the string
    fileName + " line " + lineNumber + " > eval"
or "> Function" if you're calling Function. We use that string as the
fileName for the dynamic eval or Function code. This affects both
err.fileName and err.stack.

This implies these synthetic fileNames can nest. You can end up with a
stack like:

    js> try { eval("eval('FAIL')"); } catch (x) { print(x.stack); }
    @typein line 2 > eval line 1 > eval:1:1
    @typein line 2 > eval:1:1
    @typein:2:7

I think the extended format was added in this bug:
  https://bugzilla.mozilla.org/show_bug.cgi?id=332176

-j

On Thu, Mar 27, 2014 at 1:37 PM, Mark S. Miller <[email protected]> wrote:
> Is this extended format documented anywhere?
>
>
> On Thu, Mar 27, 2014 at 10:36 AM, Jason Orendorff
> <[email protected]> wrote:
>>
>> On Thu, Mar 27, 2014 at 12:31 PM, Mark Miller <[email protected]> wrote:
>> > Mozillians, why did you add this extra information?
>>
>> Well... if the point of Error.stack is to provide diagnostic
>> information for exceptions, for the purpose of debugging, this
>> information is critical.
>>
>> Without this, eval() or Function() often won't appear on the stack
>> anywhere. What we were doing before didn't reveal that eval or
>> Function was involved at all. It was misleading and unhelpful.
>>
>> -j
>
>
>
>
> --
>     Cheers,
>     --MarkM
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to