mirror of
https://github.com/wu736139669/Monkey-Test.git
synced 2026-08-05 05:55:46 +00:00
37 lines
762 B
JavaScript
37 lines
762 B
JavaScript
// breakable.js
|
|
// MIT licensed, see LICENSE file
|
|
// Copyright (c) 2013-2014 Olov Lassus <olov.lassus@gmail.com>
|
|
|
|
var breakable = (function() {
|
|
"use strict";
|
|
|
|
function Val(val, brk) {
|
|
this.val = val;
|
|
this.brk = brk;
|
|
}
|
|
|
|
function make_brk() {
|
|
return function brk(val) {
|
|
throw new Val(val, brk);
|
|
};
|
|
}
|
|
|
|
function breakable(fn) {
|
|
var brk = make_brk();
|
|
try {
|
|
return fn(brk);
|
|
} catch (e) {
|
|
if (e instanceof Val && e.brk === brk) {
|
|
return e.val;
|
|
}
|
|
throw e;
|
|
}
|
|
}
|
|
|
|
return breakable;
|
|
})();
|
|
|
|
if (typeof module !== "undefined" && typeof module.exports !== "undefined") {
|
|
module.exports = breakable;
|
|
}
|