Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(79)

Issue 423473002: Add a new attribute [Unintercept] to prohibit the interceptor of [length] to improve the binding pe…

Created:
6 years, 5 months ago by yaojie.yan
Modified:
6 years, 5 months ago
Reviewers:
CC:
blink-reviews, arv+blink, blink-reviews-html_chromium.org, abarth-chromium, dglazkov+blink, blink-reviews-bindings_chromium.org, Inactive
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Project:
blink
Visibility:
Public.

Description

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

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+4 lines, -1 line) Patch
M Source/bindings/IDLExtendedAttributes.txt View 1 chunk +1 line, -0 lines 0 comments Download
M Source/bindings/scripts/v8_attributes.py View 1 chunk +2 lines, -0 lines 0 comments Download
M Source/core/html/HTMLCollection.idl View 1 chunk +1 line, -1 line 0 comments Download

Powered by Google App Engine
This is Rietveld 408576698