Revision f230a1cf deps/v8/test/mjsunit/compiler/expression-trees.js

View differences:

deps/v8/test/mjsunit/compiler/expression-trees.js
55 55
  }
56 56
}
57 57

  
58
// All 429 possible bitwise OR trees with eight leaves.
59
var identifiers = ['a','b','c','d','e','f','g','h'];
58
// All possible bitwise OR trees with six leaves, i.e. CatalanNumber[5] = 42,
59
// see http://mathworld.wolfram.com/CatalanNumber.html.
60
var identifiers = ['a','b','c','d','e','f'];
60 61
var or_trees = makeTrees("|", identifiers);
61 62
var and_trees = makeTrees("&", identifiers);
62 63

  
63
// Set up leaf masks to set 8 least-significant bits.
64
// Set up leaf masks to set 6 least-significant bits.
64 65
var a = 1 << 0;
65 66
var b = 1 << 1;
66 67
var c = 1 << 2;
67 68
var d = 1 << 3;
68 69
var e = 1 << 4;
69 70
var f = 1 << 5;
70
var g = 1 << 6;
71
var h = 1 << 7;
72 71

  
73 72
for (var i = 0; i < or_trees.length; ++i) {
74
  for (var j = 0; j < 8; ++j) {
73
  for (var j = 0; j < 6; ++j) {
75 74
    var or_fun = new Function("return " + or_trees[i]);
76
    if (j == 0) assertEquals(255, or_fun());
75
    if (j == 0) assertEquals(63, or_fun());
77 76

  
78 77
    // Set the j'th variable to a string to force a bailout.
79 78
    eval(identifiers[j] + "+= ''");
80
    assertEquals(255, or_fun());
79
    assertEquals(63, or_fun());
81 80
    // Set it back to a number for the next iteration.
82 81
    eval(identifiers[j] + "= +" + identifiers[j]);
83 82
  }
84 83
}
85 84

  
86
// Set up leaf masks to clear 8 least-significant bits.
87
a ^= 255;
88
b ^= 255;
89
c ^= 255;
90
d ^= 255;
91
e ^= 255;
92
f ^= 255;
93
g ^= 255;
94
h ^= 255;
85
// Set up leaf masks to clear 6 least-significant bits.
86
a ^= 63;
87
b ^= 63;
88
c ^= 63;
89
d ^= 63;
90
e ^= 63;
91
f ^= 63;
95 92

  
96 93
for (i = 0; i < and_trees.length; ++i) {
97
  for (var j = 0; j < 8; ++j) {
94
  for (var j = 0; j < 6; ++j) {
98 95
    var and_fun = new Function("return " + and_trees[i]);
99 96
    if (j == 0) assertEquals(0, and_fun());
100 97

  

Also available in: Unified diff