Closed Bug 403290 Opened 17 years ago Closed 14 years ago

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

Categories

(Core :: XPConnect, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: jruderman, Unassigned)

Details

(Keywords: testcase)

Attachments

(1 file)

Attached file 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 ?
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
Closed: 14 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: