mirror of
https://github.com/nodejs/node.git
synced 2025-05-20 02:55:51 +00:00

* @indutny's SealHandleScope patch (484bebc38319fc7c622478037922ad73b2edcbf9) has been cherry picked onto the top of V8 to make it compile. * There's some test breakage in contextify. * This was merged at the request of the TC. PR-URL: https://github.com/iojs/io.js/pull/1632
44 lines
770 B
JavaScript
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); });
|