Add a new attribute [Unintercept] to prohibit the interceptor of [length] to improve the binding performance of HTMLCollection.length
js code HTMLCollection.length jited to go to interceptor callback,
because it registers SetNamedPropertyHandler().And In the native, the
interceptor callback will first check whether the property is
HasRealNamedProperty(name), where the lookup is very time-consuming. For
HTMLCollection.length, it is true, so the interceptor callback fails and
later go to the real length-getter hander. So for very length-getter, it
needs the extra overhead of name lookup always as the slow-path do.
This patch is the binding implementation of prohibiting the interceptor
of HTMLCollection.length, and the v8 side patch is
https://codereview.chromium.org/414213002, which improves chrome
http://dromaeo.com/?dom-query by 20%.
The open issue is
https://code.google.com/p/v8/issues/detail?id=3464
BUG=
3464