"WARNING: nsDOMClassInfo::GetProperty Don't call me!" with __proto__

RESOLVED WORKSFORME

Status

()

Core
XPConnect
RESOLVED WORKSFORME
10 years ago
8 years ago

People

(Reporter: Jesse Ruderman, Unassigned)

Tracking

(Blocks: 1 bug, {testcase})

Trunk
x86
Mac OS X
testcase
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

10 years ago
Created attachment 288101 [details]
testcase

WARNING: nsDOMClassInfo::GetProperty Don't call me!: file /Users/jruderman/trunk/mozilla/dom/src/base/nsDOMClassInfo.cpp, line 3701

This was turned from an assertion to a warning in bug 327571, but I can't trigger the warning with the testcase from that bug any more.
This is kinda fun.  The proto chain here looks something like this:

  A.__proto__ == B

B's class has a getProperty hook.

We do a property get on A, end up resolving the property on B, and call the getProperty hook for B's class, passing it A as the JSObject*.

This getProperty hook is XPC_WN_Helper_GetProperty.  It assumes that since it got called the passed-in object had WantGetProperty() set, so it calls the scriptable helper GetProperty.

The problem is that WantGetProperty() was on B, but since A was passed to the hook we call A's scriptable helper, which doesn't expect to ever be called.  Hence the warning.

This seems pretty bad to me; I think the scriptable helpers really do tend to assume that they get the JSObject for the right class, no?
Would this and bug 311229 be duplicates ?
(Reporter)

Comment 3

8 years ago
WFM

Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.3a5pre) Gecko/20100602 Minefield/3.7a5pre
Status: NEW → RESOLVED
Last Resolved: 8 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.