Bug 18048
| Summary: | The "thisObject" parameter to JSEvaluateScript is not used properly | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Scott Thompson <easco> |
| Component: | JavaScriptCore | Assignee: | Sam Weinig <sam> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | ||
| Priority: | P2 | ||
| Version: | 525.x (Safari 3.1) | ||
| Hardware: | Mac | ||
| OS: | OS X 10.5 | ||
Scott Thompson
I created some code that tried to use JSEvaluateScript to pass a script to an object. My expectation was that the script would be evaluated in the context of the object passed into the "thisObject" parameter, but I found that the script is always evaluated in the global context.
For example, I tried to do something like
JSObjectRef myDocumentObject = GetObjectRefForDocument(<some document here>);
JSEvaluateScript(jsContext, myScript, myDocumentObject, ... other args ...);
I wanted to pass the script:
this.addDocumentElement()
but that came up with a type error. I had to use:
this.documents[0].addDocumentElement()
Which says to me that the script was evaluated in my global context, and not the context of my document object.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Sam Weinig
Fix landed in r31267.