New issue
Advanced search Search tips

Issue 6997 link

Starred by 1 user

Issue metadata

Status: Fixed
Closed: Nov 2017
HW: All
NextAction: ----
OS: All
Priority: 1
Type: Bug

issue 6936

Sign in to add a comment

Lots of %SetProperty calls in prepack test

Project Member Reported by, Oct 24 2017

Issue description

In the prepack test of the web-tooling-benchmark we hit the %SetProperty runtime function quite often, and it seems that most of these hits are due to dictionary mode objects again.
6.5 MB View Download
11.2 MB View Download
171 KB View Download
Description: Show this description
Summary: Lots of %SetProperty calls in prepack test (was: Lot's of %SetProperty calls in prepack test)
Status: Assigned (was: Started)
tebbi@ agreed to take a look.

Comment 5 by, Nov 2 2017

The overhead is caused by non-internalized and transitioning stores in the setupBindings() function in prepack: 

this[propName + "_binding"] = { descriptor: desc, object: this, key: propName };

I attachaed a micro-benchmark that highlights the problem.
197 bytes View Download
Project Member

Comment 6 by, Nov 3 2017

The following revision refers to this bug:

commit 113527b6bc4e489e2ff23ec8d0b30cbabbf5ebd0
Author: Tobias Tebbi <>
Date: Fri Nov 03 09:25:45 2017

[ic] Internalize strings on the fly in KeyedStoreICGeneric

Internalizing a key in the KeyedStoreICGeneric avoids an expensive SetProperty runtime call. 
This improves the prepack benchmark by ~5%. 
In the micro-benchmark copy-object.js attached to the bug, it surfaces as a ~2.5x improvement.
The performance improvement currently relies on the stub cache, since we don't search for 
transitions from within the CSA. As this CL puts additional stress on the stub cache, 
performance regressions wouldn't be too surprising.

Bug: v8:6936,  v8:6997 
Change-Id: Id1469499a3ae5450519ff40d3c5a0915c6de0d45
Reviewed-by: Jakob Kummerow <>
Reviewed-by: Benedikt Meurer <>
Commit-Queue: Tobias Tebbi <>
Cr-Commit-Position: refs/heads/master@{#49097}

Comment 7 by, Nov 17 2017

Status: Fixed (was: Assigned)

Sign in to add a comment