Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(429)

Side by Side Diff: runtime/vm/raw_object.h

Issue 2419013004: Add local variable declaration token position to service protocol (Closed)
Patch Set: ... Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « runtime/vm/parser.cc ('k') | runtime/vm/raw_object_snapshot.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_RAW_OBJECT_H_ 5 #ifndef VM_RAW_OBJECT_H_
6 #define VM_RAW_OBJECT_H_ 6 #define VM_RAW_OBJECT_H_
7 7
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 #include "vm/atomic.h" 9 #include "vm/atomic.h"
10 #include "vm/globals.h" 10 #include "vm/globals.h"
(...skipping 1337 matching lines...) Expand 10 before | Expand all | Expand 10 after
1348 kIndexBias = 1 << (kIndexSize - 1), 1348 kIndexBias = 1 << (kIndexSize - 1),
1349 kMaxIndex = (1 << (kIndexSize - 1)) - 1, 1349 kMaxIndex = (1 << (kIndexSize - 1)) - 1,
1350 }; 1350 };
1351 1351
1352 class IndexBits : public BitField<int32_t, int32_t, kIndexPos, kIndexSize> {}; 1352 class IndexBits : public BitField<int32_t, int32_t, kIndexPos, kIndexSize> {};
1353 class KindBits : public BitField<int32_t, int8_t, kKindPos, kKindSize>{}; 1353 class KindBits : public BitField<int32_t, int8_t, kKindPos, kKindSize>{};
1354 1354
1355 struct VarInfo { 1355 struct VarInfo {
1356 int32_t index_kind; // Bitfield for slot index on stack or in context, 1356 int32_t index_kind; // Bitfield for slot index on stack or in context,
1357 // and Entry kind of type VarInfoKind. 1357 // and Entry kind of type VarInfoKind.
1358 TokenPosition declaration_pos; // Token position of declaration.
1358 TokenPosition begin_pos; // Token position of scope start. 1359 TokenPosition begin_pos; // Token position of scope start.
1359 TokenPosition end_pos; // Token position of scope end. 1360 TokenPosition end_pos; // Token position of scope end.
1360 int16_t scope_id; // Scope to which the variable belongs. 1361 int16_t scope_id; // Scope to which the variable belongs.
1361 1362
1362 VarInfoKind kind() const { 1363 VarInfoKind kind() const {
1363 return static_cast<VarInfoKind>(KindBits::decode(index_kind)); 1364 return static_cast<VarInfoKind>(KindBits::decode(index_kind));
1364 } 1365 }
1365 void set_kind(VarInfoKind kind) { 1366 void set_kind(VarInfoKind kind) {
1366 index_kind = KindBits::update(kind, index_kind); 1367 index_kind = KindBits::update(kind, index_kind);
1367 } 1368 }
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
1450 friend class SnapshotReader; 1451 friend class SnapshotReader;
1451 }; 1452 };
1452 1453
1453 1454
1454 class RawContextScope : public RawObject { 1455 class RawContextScope : public RawObject {
1455 RAW_HEAP_OBJECT_IMPLEMENTATION(ContextScope); 1456 RAW_HEAP_OBJECT_IMPLEMENTATION(ContextScope);
1456 1457
1457 // TODO(iposva): Switch to conventional enum offset based structure to avoid 1458 // TODO(iposva): Switch to conventional enum offset based structure to avoid
1458 // alignment mishaps. 1459 // alignment mishaps.
1459 struct VariableDesc { 1460 struct VariableDesc {
1461 RawSmi* declaration_token_pos;
1460 RawSmi* token_pos; 1462 RawSmi* token_pos;
1461 RawString* name; 1463 RawString* name;
1462 RawBool* is_final; 1464 RawBool* is_final;
1463 RawBool* is_const; 1465 RawBool* is_const;
1464 union { 1466 union {
1465 RawAbstractType* type; 1467 RawAbstractType* type;
1466 RawInstance* value; // iff is_const is true 1468 RawInstance* value; // iff is_const is true
1467 }; 1469 };
1468 RawSmi* context_index; 1470 RawSmi* context_index;
1469 RawSmi* context_level; 1471 RawSmi* context_level;
(...skipping 1015 matching lines...) Expand 10 before | Expand all | Expand 10 after
2485 COMPILE_ASSERT(kExternalTypedDataInt8ArrayCid == 2487 COMPILE_ASSERT(kExternalTypedDataInt8ArrayCid ==
2486 kTypedDataInt8ArrayViewCid + 15); 2488 kTypedDataInt8ArrayViewCid + 15);
2487 COMPILE_ASSERT(kByteBufferCid == kExternalTypedDataInt8ArrayCid + 14); 2489 COMPILE_ASSERT(kByteBufferCid == kExternalTypedDataInt8ArrayCid + 14);
2488 COMPILE_ASSERT(kNullCid == kByteBufferCid + 1); 2490 COMPILE_ASSERT(kNullCid == kByteBufferCid + 1);
2489 return (kNullCid - kTypedDataInt8ArrayCid); 2491 return (kNullCid - kTypedDataInt8ArrayCid);
2490 } 2492 }
2491 2493
2492 } // namespace dart 2494 } // namespace dart
2493 2495
2494 #endif // VM_RAW_OBJECT_H_ 2496 #endif // VM_RAW_OBJECT_H_
OLDNEW
« no previous file with comments | « runtime/vm/parser.cc ('k') | runtime/vm/raw_object_snapshot.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698