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

Unified Diff: test.js

Issue 22545007: Hack forEach to use HasFastPackedElements (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Branch on proxies Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« src/array.js ('K') | « src/runtime.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test.js
diff --git a/test/mjsunit/lea-add.js b/test.js
similarity index 60%
copy from test/mjsunit/lea-add.js
copy to test.js
index 28a14947067b3be683eb19d7d3a39beeda60774f..2ffb41201ac3960e474401194a52c6d5fd85dae4 100644
--- a/test/mjsunit/lea-add.js
+++ b/test.js
@@ -25,60 +25,85 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// Flags: --allow-natives-syntax
-function a() {
- var sum = 0;
- for (var i = 0; i < 500; ++i) {
- sum = (i + sum) | 0;
+load('benchmarks/base.js');
+
+
+function createArray() {
+ var array = [];
+ for (var i = 0; i < 100; i++) {
+ array[i] = i;
}
- return sum;
+ return array;
}
-function b() {
- var sum = 0;
- for (var i = -500; i < 0; ++i) {
- sum = (i + sum) | 0;
+
+function createArrayWithHoles() {
+ var array = [];
+ for (var i = 0; i < 100; i += 2) {
+ array[i] = i;
}
- return sum;
+ return array;
}
-function c() {
- var sum = 0;
- for (var i = 0; i < 500; ++i) {
- sum += (i + -0x7fffffff) | 0;
- }
- return sum;
+
+var array = createArray();
+var arrayWithHoles = createArrayWithHoles();
+
+
+function f(value, index) {
+ if (value !== index)
+ throw new Error();
}
-function d() {
- var sum = 0;
- for (var i = -501; i < 0; ++i) {
- sum += (i + 501) | 0;
- }
- return sum;
+
+function ForEach() {
+ array.forEach(f);
+}
+
+
+function ForEach2() {
+ array.forEach2(f);
+}
+
+
+function ForEach3() {
+ array.forEach3(f);
+}
+
+
+function ForEachWithHoles() {
+ arrayWithHoles.forEach(f);
+}
+
+
+function ForEach2WithHoles() {
+ arrayWithHoles.forEach2(f);
}
-a();
-a();
-%OptimizeFunctionOnNextCall(a);
-assertEquals(124750, a());
-assertEquals(124750, a());
-
-b();
-b();
-%OptimizeFunctionOnNextCall(b);
-assertEquals(-125250, b());
-assertEquals(-125250, b());
-
-c();
-c();
-%OptimizeFunctionOnNextCall(c);
-assertEquals(-1073741698750, c());
-assertEquals(-1073741698750, c());
-
-d();
-d();
-%OptimizeFunctionOnNextCall(d);
-assertEquals(125250, d());
-assertEquals(125250, d());
+
+function ForEach3WithHoles() {
+ arrayWithHoles.forEach3(f);
+}
+
+
+[
+ ForEach,
+ ForEach2,
+ ForEach3,
+ ForEachWithHoles,
+ ForEach2WithHoles,
+ ForEach3WithHoles
+].forEach(function(f) {
+ var name = f.name;
+ new BenchmarkSuite(name, 1e4, [
+ new Benchmark(name, f, f)
+ ]);
+});
+
+
+BenchmarkSuite.RunSuites({
+ NotifyResult: function(name, result) {
+ print(name + ': ' + result);
+ }
+});
« src/array.js ('K') | « src/runtime.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698