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

Reply via email to