1.1 --- a/jitcraft/Code.h Wed Jul 11 01:12:54 2012 -0700
1.2 +++ b/jitcraft/Code.h Thu Jul 12 00:38:00 2012 -0700
1.3 @@ -24,6 +24,7 @@
1.4 #include "Heap.h"
1.5 #include "Types.h"
1.6 #include "FixedArray.h"
1.7 +#include "Token.h"
1.8
1.9 namespace ke {
1.10
1.11 @@ -40,7 +41,9 @@
1.12 Barriered<FixedArray> locals_;
1.13 Barriered<FixedArray> objects_;
1.14 Barriered<ByteArray> safepoints_;
1.15 + Barriered<ByteArray> sourcemap_;
1.16 unsigned maxStackDepth_;
1.17 + unsigned lineNumber_;
1.18
1.19 public:
1.20 static inline size_t BytesPerSafepoint(size_t stackDepth) {
1.21 @@ -50,7 +53,8 @@
1.22 public:
1.23 static Code *New(Zone *zone, Handle<ByteArray> bytecode, Handle<FixedArray> locals,
1.24 Handle<FixedArray> objects, unsigned maxStackDepth, Handle<Module> module,
1.25 - Handle<ByteArray> safepoints);
1.26 + Handle<ByteArray> safepoints, Handle<ByteArray> sourcemap,
1.27 + unsigned lineNumber);
1.28
1.29 Module *module() {
1.30 return module_;
1.31 @@ -86,6 +90,11 @@
1.32 return pc - start();
1.33 }
1.34
1.35 + SourcePosition pcToSource(unsigned pc);
1.36 + unsigned lineNumber() {
1.37 + return lineNumber_;
1.38 + }
1.39 +
1.40 // GC Descriptor.
1.41 static inline size_t offsetOfModule() {
1.42 return offsetof(Code, module_);
1.43 @@ -102,6 +111,9 @@
1.44 static inline size_t offsetOfSafepoints() {
1.45 return offsetof(Code, safepoints_);
1.46 }
1.47 + static inline size_t offsetOfSourceMap() {
1.48 + return offsetof(Code, sourcemap_);
1.49 + }
1.50 // End GC Descriptor.
1.51
1.52 static Code *cast(Object *obj) {