v8/test/mjsunit/regress/regress-469605.js
2015-03-23 14:08:25 +00:00

44 lines
770 B
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.
function counter() {
var i = 100;
return function() {
if (i-- > 0) return i;
throw "done";
}
}
var c1 = counter();
var c2 = counter();
var f = (function() {
"use asm";
return function f(i) {
i = i|0;
do {
if (i > 0) c1();
else c2();
} while (true);
}
})();
assertThrows(function() { f(0); });
assertThrows(function() { f(1); });
var c3 = counter();
var g = (function() {
"use asm";
return function g(i) {
i = i + 1;
do {
i = c3(i);
} while (true);
}
})();
assertThrows(function() { g(0); });
assertThrows(function() { g(1); });