Comment #2 on issue 2407 by [email protected]: Object.isFrozen() throws
when called on a function whose caller is strict
http://code.google.com/p/v8/issues/detail?id=2407
I actually have the stack trace for this. Here's a shorthand version:
Accessors::FunctionGetCaller
JSObject::GetPropertyWithCallback
Object::GetProperty
GetOwnProperty (runtime.cc)
%GetOwnProperty (Runtime_GetOwnProperty, now we're in C++)
GetOwnProperty (JS)
ObjectIsFrozen (JS)
So it's the GetOwnProperty() call in ObjectIsFrozen that leads to this,
because the non-strict caller property presents itself as a value property
(despite being implemented internally with a getter) and thus getting the
descriptor requires getting the value.
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev