Thanks Nicolas.

> I don't know how the js-shell command line is feeding commands into 
> 
> IonMonkey, but IonMonkey check if it can be used for compilation in
> 
>    js::ion::CanEnter
> 
>    js::ion::CanEnterAtBranch (for OSR)
> 
I found main function which locate js/src/shell/js.cpp:5103.
It call Shell(JSContext *cx, OptionParser *op, char **envp).
I understand function flow.
----
int main(int argc, char **argv, char **envp)
↓
int 
Shell(JSContext *cx, OptionParser *op, char **envp)
↓
static int 
ProcessArgs(JSContext *cx, JSObject *obj_, OptionParser *op)
↓
static void 
Process(JSContext *cx, JSObject *obj_, const char *filename, bool forceTTY)
↓
JS_NEVER_INLINE JS_PUBLIC_API(JSBool)
JS_ExecuteScript(JSContext *cx, JSObject *objArg, JSScript *scriptArg, jsval 
*rval)
in js/src/jsapi.cpp
↓
bool
js::Execute(JSContext *cx, HandleScript script, JSObject &scopeChainArg, Value 
*rval)
in js/src/jsinterp
↓
bool
js::ExecuteKernel(JSContext *cx, HandleScript script, JSObject &scopeChainArg, 
const Value &thisv,
                  ExecuteType type, AbstractFramePtr evalInFrame, Value *result)
↓
bool
js::RunScript(JSContext *cx, StackFrame *fp)
↓
JS_NEVER_INLINE InterpretStatus
js::Interpret(JSContext *cx, StackFrame *entryFrame, InterpMode interpMode)
---

Last call function execute js-operation such as add or sub.
I found js::ion::CanEnter in js::RunScript.

I can't understand how call foldsTo function in js/src/ion/MIR.cpp.
I'd like to know how call foldsTo function from js::ion::CanEnter to fix this 
bug(https://bugzilla.mozilla.org/show_bug.cgi?id=852791)
--
Masaya Iseki
_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals

Reply via email to