summaryrefslogtreecommitdiff
path: root/chromium/v8/src/objects/data-handler.tq
blob: 46af326348184a87921a0f8d524ae119c6567c0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 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.

// This class does not use the generated verifier, so if you change anything
// here, please also update DataHandlerVerify in objects-debug.cc.
@abstract
extern class DataHandler extends Struct {
  // [smi_handler]: A Smi which encodes a handler or Code object (we still
  // use code handlers for accessing lexical environment variables, but soon
  // only smi handlers will remain). See LoadHandler and StoreHandler for
  // details about encoding.
  @if(V8_EXTERNAL_CODE_SPACE) smi_handler: Smi|CodeDataContainer;
  @ifnot(V8_EXTERNAL_CODE_SPACE) smi_handler: Smi|Code;

  // [validity_cell]: A validity Cell that guards prototype chain modifications.
  validity_cell: Smi|Cell;

  // Space for the following fields may or may not be allocated.
  data1: MaybeObject;
  data2: MaybeObject;
  data3: MaybeObject;
}