On Tue, Feb 10, 2015 at 6:46 PM, <obaste...@gmail.com> wrote: > Is there any reason why ION marks the below first function to not_compile, > while it's not a problem for the second ? > > 1 - function x() { var arr = []; arr[0] = 1; ...some_other_things... } > > 2 - function x() { var arr = new Array(); arr[0] = 1; .......... } > > > 'array(opcode 190) is not typed?' >
Can you be more specific? Which Firefox/SM version did you use? Where did you see the "is not typed" message? What do you mean by "not_compile"? Ion should handle those two functions without any problems, as far as I know. > The current 'op-code' interpreter implementation is 'switch-case'. Most > compilers will be converting that into a binary tree (which is fast enough, > but the worst case is ~8 (~300 op codes)). > > Although it's a big change, is there any plan for updating that part to a > jump table ? I didn't track yet but would you expect a significant > performance gain from there. > C++ compilers are smart enough to emit a jump table for switch statements like this one. On some platforms we do something even better (indirect goto), see bug 910782 [0] and the comment at the start of Interpret in js/src/vm/Interpreter.cpp. Jan [0] https://bugzilla.mozilla.org/show_bug.cgi?id=910782 _______________________________________________ dev-tech-js-engine-internals mailing list dev-tech-js-engine-internals@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals