9094a41e23
We were calling setup for both the setup and the run. Bug: v8:10155 Change-Id: Id60df16ad8c98f443dc1b1a9a2155000999ab815 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2039431 Reviewed-by: Mythri Alle <mythria@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#66234}
92 lines
2.4 KiB
JavaScript
92 lines
2.4 KiB
JavaScript
// Copyright 2015 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
new BenchmarkSuite('With', [1000], [
|
|
new Benchmark(
|
|
'AccessOnSameLevel', false, false, 0, AccessOnSameLevel,
|
|
AccessOnSameLevelSetup, AccessOnSameLevelTearDown),
|
|
new Benchmark(
|
|
'SetOnSameLevel', false, false, 0, SetOnSameLevel, SetOnSameLevelSetup,
|
|
SetOnSameLevelTearDown),
|
|
new Benchmark(
|
|
'AccessOverPrototypeChain', false, false, 0, AccessOverPrototypeChain,
|
|
AccessOverPrototypeChainSetup, AccessOverPrototypeChainTearDown),
|
|
new Benchmark(
|
|
'CompetingScope', false, false, 0, CompetingScope, CompetingScopeSetup,
|
|
CompetingScopeTearDown)
|
|
]);
|
|
|
|
var objectUnderTest;
|
|
var objectUnderTestExtended;
|
|
var resultStore;
|
|
var VALUE_OF_PROPERTY = 'Simply a string';
|
|
var SOME_OTHER_VALUE = 'Another value';
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
function AccessOnSameLevelSetup() {
|
|
objectUnderTest = {first: VALUE_OF_PROPERTY};
|
|
}
|
|
|
|
function AccessOnSameLevel() {
|
|
with (objectUnderTest) {
|
|
resultStore = first;
|
|
}
|
|
}
|
|
|
|
function AccessOnSameLevelTearDown() {
|
|
return objectUnderTest.first === resultStore;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
function AccessOverPrototypeChainSetup() {
|
|
objectUnderTest = {first: VALUE_OF_PROPERTY};
|
|
objectUnderTestExtended = Object.create(objectUnderTest);
|
|
objectUnderTestExtended.second = 'Another string';
|
|
}
|
|
|
|
function AccessOverPrototypeChain() {
|
|
with (objectUnderTestExtended) {
|
|
resultStore = first;
|
|
}
|
|
}
|
|
|
|
function AccessOverPrototypeChainTearDown() {
|
|
return objectUnderTest.first === resultStore;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
function CompetingScopeSetup() {
|
|
objectUnderTest = {first: VALUE_OF_PROPERTY};
|
|
}
|
|
|
|
function CompetingScope() {
|
|
var first = 'Not correct';
|
|
with (objectUnderTest) {
|
|
resultStore = first;
|
|
}
|
|
}
|
|
|
|
function CompetingScopeTearDown() {
|
|
return objectUnderTest.first === resultStore;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
function SetOnSameLevelSetup() {
|
|
objectUnderTest = {first: VALUE_OF_PROPERTY};
|
|
}
|
|
|
|
function SetOnSameLevel() {
|
|
with (objectUnderTest) {
|
|
first = SOME_OTHER_VALUE;
|
|
}
|
|
}
|
|
|
|
function SetOnSameLevelTearDown() {
|
|
return objectUnderTest.first === SOME_OTHER_VALUE;
|
|
}
|