Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
perf(Subscription): use
instanceof
to avoid megamorphic LoadIC
In `Subscription#add()` use `instanceof` to test whether `subscription` must be wrapped in a `Subscription` (aka for presence of `_addParent` method), instead of `typeof subscription._addParent === 'function'`, as the latter is going to turn into a *megamorphic property access* in any realistic application and cause quite a bit of contention on the megamorphic stub cache in Node (aka V8). The `instanceof` is definitely faster, even if the property access would hit the megamorphic stub cache. For example in the case of a simple [Angular Universal prerender][1] test, just changing this can reduce the number of megamorphic stub cache misses by around **2%**. [1]: https://gist.githubusercontent.com/bmeurer/5b9480ef1a74c5187180193abc73dcd4/raw/fc5d9a01a6b7fe841efa1c7773ae55e70435d16a/prerender.js
- Loading branch information