Lines Matching defs:generator
5 #include "src/interpreter/bytecode-generator.h"
49 ContextScope(BytecodeGenerator* generator, Scope* scope,
51 : generator_(generator),
119 explicit ControlScope(BytecodeGenerator* generator)
120 : generator_(generator),
121 outer_(generator->execution_control()),
122 context_(generator->execution_context()) {
166 BytecodeGenerator* generator() const { return generator_; }
192 DeferredCommands(BytecodeGenerator* generator, Register token_register,
194 : generator_(generator),
195 deferred_(generator->zone()),
358 explicit ControlScopeForTopLevel(BytecodeGenerator* generator)
359 : ControlScope(generator) {}
370 generator()->BuildReturn(source_position);
374 generator()->BuildAsyncReturn(source_position);
378 generator()->BuildReThrow();
389 ControlScopeForBreakable(BytecodeGenerator* generator,
392 : ControlScope(generator),
424 ControlScopeForIteration(BytecodeGenerator* generator,
427 : ControlScope(generator),
461 ControlScopeForTryCatch(BytecodeGenerator* generator,
463 : ControlScope(generator) {}
477 generator()->BuildReThrow();
488 ControlScopeForTryFinally(BytecodeGenerator* generator,
491 : ControlScope(generator),
525 NaryCodeCoverageSlots(BytecodeGenerator* generator, NaryOperation* expr)
526 : generator_(generator) {
563 if (generator()->execution_context() != context()) {
564 generator()->builder()->PopContext(context()->reg());
570 explicit RegisterAllocationScope(BytecodeGenerator* generator)
571 : generator_(generator),
573 generator->register_allocator()->next_register_index()) {}
583 BytecodeGenerator* generator() const { return generator_; }
592 explicit AccumulatorPreservingScope(BytecodeGenerator* generator,
594 : generator_(generator) {
623 ExpressionResultScope(BytecodeGenerator* generator, Expression::Context kind)
624 : outer_(generator->execution_result()),
625 allocator_(generator),
628 generator->set_execution_result(this);
632 allocator_.generator()->set_execution_result(outer_);
672 explicit EffectResultScope(BytecodeGenerator* generator)
673 : ExpressionResultScope(generator, Expression::kEffect) {}
681 explicit ValueResultScope(BytecodeGenerator* generator)
682 : ExpressionResultScope(generator, Expression::kValue) {}
690 TestResultScope(BytecodeGenerator* generator, BytecodeLabels* then_labels,
692 : ExpressionResultScope(generator, Expression::kTest),
753 BytecodeGenerator* generator,
778 int literal_index = generator->GetCachedCreateClosureSlot(f);
807 int literal_index = generator->GetCachedCreateClosureSlot(f);
859 CurrentScope(BytecodeGenerator* generator, Scope* scope)
860 : generator_(generator), outer_scope_(generator->current_scope()) {
881 MultipleEntryBlockContextScope(BytecodeGenerator* generator, Scope* scope)
882 : generator_(generator), scope_(scope), is_in_scope_(false) {
884 inner_context_ = generator->register_allocator()->NewRegister();
885 outer_context_ = generator->register_allocator()->NewRegister();
886 generator->BuildNewLocalBlockContext(scope_);
887 generator->builder()->StoreAccumulatorInRegister(inner_context_);
1417 // Create a generator object if necessary and initialize the
1481 // the incoming generator object.
1508 // If the generator is not undefined, this is a resume, so perform state
1513 // will run into the generator object creation and other extra code inserted
3660 ->MoveRegister(generator_object(), args[0]) // generator
3670 ->MoveRegister(generator_object(), args[0]) // generator
4648 // Suspends the generator to resume at the next suspend_id, with output stored
4649 // in the accumulator. When the generator is resumed, the sent value is loaded
4671 // [[input_or_debug_pos]] slot of the generator object.
4688 ->MoveRegister(generator_object(), args[0]) // generator
4707 // At this point, the generator has been resumed, with the received value in
4773 // // From the generator to the iterator:
4806 // // From the generator to its user:
4849 // generator has 2 additional suspends:
4850 // - One for awaiting the iterator result of closing the generator when
4940 // Suspend the current generator.
4955 ->MoveRegister(generator_object(), args[0]) // generator
6950 // The generator resume trampoline abuses the new.target register
6951 // to pass in the generator object. In ordinary calls, new.target is always
6952 // undefined because generator functions are non-constructible, so don't
6987 // The generator object register is already set to the variable's local