Bug 470997 - TM: trace-test.js should throw an error when |test.jitstats| contains an unrecognized property name. r=gal
--- a/js/src/trace-test.js
+++ b/js/src/trace-test.js
@@ -41,22 +41,37 @@ function jitstatHandler(f)
f("returnLoopExits");
f("mergedLoopExits")
f("noCompatInnerTrees");
}
function test(f)
{
if (!testName || testName == f.name) {
+ var expectedJITstats = f.jitstats;
+ if (expectedJITstats)
+ {
+ var expectedProps = {};
+ jitstatHandler(function(prop) {
+ if (prop in expectedJITstats)
+ expectedProps[prop] = true;
+ });
+ for (var p in expectedJITstats)
+ {
+ if (!(p in expectedProps))
+ throw "Bad property in " + f.name + ".expected: " + p;
+ }
+ }
+
// Collect our jit stats
var localJITstats = {};
- jitstatHandler(function(prop, local, global) {
+ jitstatHandler(function(prop) {
localJITstats[prop] = tracemonkey[prop];
});
- check(f.name, f(), f.expected, localJITstats, f.jitstats);
+ check(f.name, f(), f.expected, localJITstats, expectedJITstats);
}
}
function map_test(t, cases)
{
for (var i = 0; i < cases.length; i++) {
function c() { return t(cases[i].input); }
c.expected = cases[i].expected;