I'm writing a low-level, CPU-bound parsing library, and I want to make sure
the parsing code is as efficient as possible.
I know that V8 will sometimes inline function calls if they're "simple"
enough, don't contain any blacklisted syntax, etc.
But will it do the same with instance method calls? For example, let's say
I just have a very simple wrapper like this:
class X {
arr
constructor(arr) {
this.arr = arr
}
push(x) {
this.arr.push(x)
}
}
Would a call like `x.push(1)` get inlined into `x.arr.push(1)`?
If so, what if I complicate things a bit:
- If `push` instead calls another instance method. Would both calls get
inlined?
- If it's an inherited method up the prototype chain (but is never
overriden)
- If push calls a function in a variable, like if it received a function
argument and called it. Would the body of push get inlined even if the
internal call cannot be inlined?
--
--
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
---
You received this message because you are subscribed to the Google Groups
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/v8-users/b8183300-8c73-4a5b-9490-428328823ae2n%40googlegroups.com.