| // Copyright 2019 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. |
| |
| @cppObjectLayoutDefinition |
| extern class Cell extends HeapObject { |
| maybe_value: MaybeObject; |
| } |
| |
| // These strong accessors are for the cases when a Cell is known to contain |
| // only Objects. |
| operator '.value' macro LoadCellValue(cell: Cell): Object { |
| const value = cell.maybe_value; |
| dcheck(!IsWeakOrCleared(value)); |
| return UnsafeCast<Object>(value); |
| } |
| |
| operator '.value=' macro StoreCellValue(cell: Cell, value: Object): void { |
| cell.maybe_value = value; |
| } |