prepack
Version:
Execute a JS bundle, serialize global state and side effects to a snapshot that can be quickly restored.
52 lines (39 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (realm, obj) {
// ECMA262 25.3.1.2
obj.defineNativeMethod("next", 1, (context, [value]) => {
// 1. Let g be the this value.
let g = context;
// 2. Return ? GeneratorResume(g, value).
return (0, _generator.GeneratorResume)(realm, g, value);
});
// ECMA262 25.3.1.3
obj.defineNativeMethod("return", 1, (context, [value]) => {
// 1. Let g be the this value.
let g = context;
// 2. Let C be Completion{[[Type]]: return, [[Value]]: value, [[Target]]: empty}.
let C = new _completions.ReturnCompletion(value, realm.currentLocation);
// 3. Return ? GeneratorResumeAbrupt(g, C).
return (0, _generator.GeneratorResumeAbrupt)(realm, g, C);
});
// ECMA262 25.3.1.4
obj.defineNativeMethod("throw", 1, (context, [exception]) => {
// 1. Let g be the this value.
let g = context;
// 2. Let C be Completion{[[Type]]: throw, [[Value]]: exception, [[Target]]: empty}.
let C = new _completions.ReturnCompletion(exception, realm.currentLocation);
// 3. Return ? GeneratorResumeAbrupt(g, C).
return (0, _generator.GeneratorResumeAbrupt)(realm, g, C);
});
// ECMA262 25.3.1.5
obj.defineNativeProperty(realm.intrinsics.SymbolToStringTag, new _index.StringValue(realm, "Generator"), {
writable: false
});
};
var _completions = require("../../completions.js");
var _index = require("../../values/index.js");
var _generator = require("../../methods/generator.js");
//# sourceMappingURL=GeneratorPrototype.js.map