Bug 163099
Summary: | [JSC] Clean up callOperation APIs | ||
---|---|---|---|
Product: | WebKit | Reporter: | Yusuke Suzuki <ysuzuki> |
Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW | ||
Severity: | Normal | CC: | saam |
Priority: | P2 | ||
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Yusuke Suzuki
From Saam's idea. https://bugs.webkit.org/show_bug.cgi?id=162978#c3
class Call {
struct Argument {
Argument(GPRReg);
Argument(JSValueRegs);
Argument(immediate type: int32/int64/pointer);
}
Type m_resultType;
Vector<Arguments> m_arguments;
FunctionPtr m_function;
};
and then have a function like:
setupCallWithExecState(const Call& call);
And API should correctly construct the frame according to Vector<Arguments>.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Saam Barati
(In reply to comment #0)
> From Saam's idea. https://bugs.webkit.org/show_bug.cgi?id=162978#c3
>
> class Call {
> struct Argument {
> Argument(GPRReg);
> Argument(JSValueRegs);
> Argument(immediate type: int32/int64/pointer);
> }
> Type m_resultType;
> Vector<Arguments> m_arguments;
> FunctionPtr m_function;
> };
>
> and then have a function like:
> setupCallWithExecState(const Call& call);
>
> And API should correctly construct the frame according to Vector<Arguments>.
Thinking about it more, we'd probably want to encode if the first argument is ExecState or not since we have some operations that don't take ExecState