|  | // Copyright 2016 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. | 
|  |  | 
|  | #include "src/interpreter/bytecode-label.h" | 
|  |  | 
|  | #include "src/interpreter/bytecode-array-builder.h" | 
|  | #include "src/objects/objects-inl.h" | 
|  |  | 
|  | namespace v8 { | 
|  | namespace internal { | 
|  | namespace interpreter { | 
|  |  | 
|  | BytecodeLabel* BytecodeLabels::New() { | 
|  | DCHECK(!is_bound()); | 
|  | labels_.emplace_back(BytecodeLabel()); | 
|  | return &labels_.back(); | 
|  | } | 
|  |  | 
|  | void BytecodeLabels::Bind(BytecodeArrayBuilder* builder) { | 
|  | DCHECK(!is_bound_); | 
|  | is_bound_ = true; | 
|  | for (auto& label : labels_) { | 
|  | builder->Bind(&label); | 
|  | } | 
|  | } | 
|  |  | 
|  | }  // namespace interpreter | 
|  | }  // namespace internal | 
|  | }  // namespace v8 |