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

Side by Side Diff: src/messages.h

Issue 2557923005: [wasm] Provide correct eval origin for asm.js code (Closed)
Patch Set: Rebase Created 4 years 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 | « no previous file | src/messages.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 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // The infrastructure used for (localized) message reporting in V8. 5 // The infrastructure used for (localized) message reporting in V8.
6 // 6 //
7 // Note: there's a big unresolved issue about ownership of the data 7 // Note: there's a big unresolved issue about ownership of the data
8 // structures used by this framework. 8 // structures used by this framework.
9 9
10 #ifndef V8_MESSAGES_H_ 10 #ifndef V8_MESSAGES_H_
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 virtual ~StackFrameBase() {} 49 virtual ~StackFrameBase() {}
50 50
51 virtual Handle<Object> GetReceiver() const = 0; 51 virtual Handle<Object> GetReceiver() const = 0;
52 virtual Handle<Object> GetFunction() const = 0; 52 virtual Handle<Object> GetFunction() const = 0;
53 53
54 virtual Handle<Object> GetFileName() = 0; 54 virtual Handle<Object> GetFileName() = 0;
55 virtual Handle<Object> GetFunctionName() = 0; 55 virtual Handle<Object> GetFunctionName() = 0;
56 virtual Handle<Object> GetScriptNameOrSourceUrl() = 0; 56 virtual Handle<Object> GetScriptNameOrSourceUrl() = 0;
57 virtual Handle<Object> GetMethodName() = 0; 57 virtual Handle<Object> GetMethodName() = 0;
58 virtual Handle<Object> GetTypeName() = 0; 58 virtual Handle<Object> GetTypeName() = 0;
59 virtual Handle<Object> GetEvalOrigin() = 0; 59 virtual Handle<Object> GetEvalOrigin();
60 60
61 virtual int GetPosition() const = 0; 61 virtual int GetPosition() const = 0;
62 // Return 1-based line number, including line offset. 62 // Return 1-based line number, including line offset.
63 virtual int GetLineNumber() = 0; 63 virtual int GetLineNumber() = 0;
64 // Return 1-based column number, including column offset if first line. 64 // Return 1-based column number, including column offset if first line.
65 virtual int GetColumnNumber() = 0; 65 virtual int GetColumnNumber() = 0;
66 66
67 virtual bool IsNative() = 0; 67 virtual bool IsNative() = 0;
68 virtual bool IsToplevel() = 0; 68 virtual bool IsToplevel() = 0;
69 virtual bool IsEval() = 0; 69 virtual bool IsEval();
70 virtual bool IsConstructor() = 0; 70 virtual bool IsConstructor() = 0;
71 virtual bool IsStrict() const = 0; 71 virtual bool IsStrict() const = 0;
72 72
73 virtual MaybeHandle<String> ToString() = 0; 73 virtual MaybeHandle<String> ToString() = 0;
74
75 protected:
76 StackFrameBase() {}
77 explicit StackFrameBase(Isolate* isolate) : isolate_(isolate) {}
78 Isolate* isolate_;
79
80 private:
81 virtual bool HasScript() const = 0;
82 virtual Handle<Script> GetScript() const = 0;
74 }; 83 };
75 84
76 class JSStackFrame : public StackFrameBase { 85 class JSStackFrame : public StackFrameBase {
77 public: 86 public:
78 JSStackFrame(Isolate* isolate, Handle<Object> receiver, 87 JSStackFrame(Isolate* isolate, Handle<Object> receiver,
79 Handle<JSFunction> function, Handle<AbstractCode> code, 88 Handle<JSFunction> function, Handle<AbstractCode> code,
80 int offset); 89 int offset);
81 virtual ~JSStackFrame() {} 90 virtual ~JSStackFrame() {}
82 91
83 Handle<Object> GetReceiver() const override { return receiver_; } 92 Handle<Object> GetReceiver() const override { return receiver_; }
84 Handle<Object> GetFunction() const override; 93 Handle<Object> GetFunction() const override;
85 94
86 Handle<Object> GetFileName() override; 95 Handle<Object> GetFileName() override;
87 Handle<Object> GetFunctionName() override; 96 Handle<Object> GetFunctionName() override;
88 Handle<Object> GetScriptNameOrSourceUrl() override; 97 Handle<Object> GetScriptNameOrSourceUrl() override;
89 Handle<Object> GetMethodName() override; 98 Handle<Object> GetMethodName() override;
90 Handle<Object> GetTypeName() override; 99 Handle<Object> GetTypeName() override;
91 Handle<Object> GetEvalOrigin() override;
92 100
93 int GetPosition() const override; 101 int GetPosition() const override;
94 int GetLineNumber() override; 102 int GetLineNumber() override;
95 int GetColumnNumber() override; 103 int GetColumnNumber() override;
96 104
97 bool IsNative() override; 105 bool IsNative() override;
98 bool IsToplevel() override; 106 bool IsToplevel() override;
99 bool IsEval() override;
100 bool IsConstructor() override; 107 bool IsConstructor() override;
101 bool IsStrict() const override { return is_strict_; } 108 bool IsStrict() const override { return is_strict_; }
102 109
103 MaybeHandle<String> ToString() override; 110 MaybeHandle<String> ToString() override;
104 111
105 private: 112 private:
106 JSStackFrame(); 113 JSStackFrame();
107 void FromFrameArray(Isolate* isolate, Handle<FrameArray> array, int frame_ix); 114 void FromFrameArray(Isolate* isolate, Handle<FrameArray> array, int frame_ix);
108 115
109 bool HasScript() const; 116 bool HasScript() const override;
110 Handle<Script> GetScript() const; 117 Handle<Script> GetScript() const override;
111
112 Isolate* isolate_;
113 118
114 Handle<Object> receiver_; 119 Handle<Object> receiver_;
115 Handle<JSFunction> function_; 120 Handle<JSFunction> function_;
116 Handle<AbstractCode> code_; 121 Handle<AbstractCode> code_;
117 int offset_; 122 int offset_;
118 123
119 bool force_constructor_; 124 bool force_constructor_;
120 bool is_strict_; 125 bool is_strict_;
121 126
122 friend class FrameArrayIterator; 127 friend class FrameArrayIterator;
123 }; 128 };
124 129
125 class WasmStackFrame : public StackFrameBase { 130 class WasmStackFrame : public StackFrameBase {
126 public: 131 public:
127 virtual ~WasmStackFrame() {} 132 virtual ~WasmStackFrame() {}
128 133
129 Handle<Object> GetReceiver() const override { return wasm_instance_; } 134 Handle<Object> GetReceiver() const override { return wasm_instance_; }
130 Handle<Object> GetFunction() const override; 135 Handle<Object> GetFunction() const override;
131 136
132 Handle<Object> GetFileName() override { return Null(); } 137 Handle<Object> GetFileName() override { return Null(); }
133 Handle<Object> GetFunctionName() override; 138 Handle<Object> GetFunctionName() override;
134 Handle<Object> GetScriptNameOrSourceUrl() override { return Null(); } 139 Handle<Object> GetScriptNameOrSourceUrl() override { return Null(); }
135 Handle<Object> GetMethodName() override { return Null(); } 140 Handle<Object> GetMethodName() override { return Null(); }
136 Handle<Object> GetTypeName() override { return Null(); } 141 Handle<Object> GetTypeName() override { return Null(); }
137 Handle<Object> GetEvalOrigin() override { return Null(); }
138 142
139 int GetPosition() const override; 143 int GetPosition() const override;
140 int GetLineNumber() override { return wasm_func_index_; } 144 int GetLineNumber() override { return wasm_func_index_; }
141 int GetColumnNumber() override { return -1; } 145 int GetColumnNumber() override { return -1; }
142 146
143 bool IsNative() override { return false; } 147 bool IsNative() override { return false; }
144 bool IsToplevel() override { return false; } 148 bool IsToplevel() override { return false; }
145 bool IsEval() override { return false; }
146 bool IsConstructor() override { return false; } 149 bool IsConstructor() override { return false; }
147 bool IsStrict() const override { return false; } 150 bool IsStrict() const override { return false; }
148 151
149 MaybeHandle<String> ToString() override; 152 MaybeHandle<String> ToString() override;
150 153
151 protected: 154 protected:
152 Handle<Object> Null() const; 155 Handle<Object> Null() const;
153 156
154 Isolate* isolate_; 157 bool HasScript() const override;
158 Handle<Script> GetScript() const override;
155 159
156 // TODO(wasm): Use proper typing. 160 // TODO(wasm): Use proper typing.
157 Handle<Object> wasm_instance_; 161 Handle<Object> wasm_instance_;
158 uint32_t wasm_func_index_; 162 uint32_t wasm_func_index_;
159 Handle<AbstractCode> code_; 163 Handle<AbstractCode> code_;
160 int offset_; 164 int offset_;
161 165
162 private: 166 private:
167 WasmStackFrame();
163 void FromFrameArray(Isolate* isolate, Handle<FrameArray> array, int frame_ix); 168 void FromFrameArray(Isolate* isolate, Handle<FrameArray> array, int frame_ix);
164 169
165 friend class FrameArrayIterator; 170 friend class FrameArrayIterator;
166 friend class AsmJsWasmStackFrame; 171 friend class AsmJsWasmStackFrame;
167 }; 172 };
168 173
169 class AsmJsWasmStackFrame : public WasmStackFrame { 174 class AsmJsWasmStackFrame : public WasmStackFrame {
170 public: 175 public:
171 virtual ~AsmJsWasmStackFrame() {} 176 virtual ~AsmJsWasmStackFrame() {}
172 177
173 Handle<Object> GetReceiver() const override; 178 Handle<Object> GetReceiver() const override;
174 Handle<Object> GetFunction() const override; 179 Handle<Object> GetFunction() const override;
175 180
176 Handle<Object> GetFileName() override; 181 Handle<Object> GetFileName() override;
177 Handle<Object> GetScriptNameOrSourceUrl() override; 182 Handle<Object> GetScriptNameOrSourceUrl() override;
178 183
179 int GetPosition() const override; 184 int GetPosition() const override;
180 int GetLineNumber() override; 185 int GetLineNumber() override;
181 int GetColumnNumber() override; 186 int GetColumnNumber() override;
182 187
183 MaybeHandle<String> ToString() override; 188 MaybeHandle<String> ToString() override;
184 189
185 private: 190 private:
186 friend class FrameArrayIterator; 191 friend class FrameArrayIterator;
192 AsmJsWasmStackFrame();
187 void FromFrameArray(Isolate* isolate, Handle<FrameArray> array, int frame_ix); 193 void FromFrameArray(Isolate* isolate, Handle<FrameArray> array, int frame_ix);
188 194
189 bool is_at_number_conversion_; 195 bool is_at_number_conversion_;
190 }; 196 };
191 197
192 class FrameArrayIterator { 198 class FrameArrayIterator {
193 public: 199 public:
194 FrameArrayIterator(Isolate* isolate, Handle<FrameArray> array, 200 FrameArrayIterator(Isolate* isolate, Handle<FrameArray> array,
195 int frame_ix = 0); 201 int frame_ix = 0);
196 202
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 static Handle<String> GetMessage(Isolate* isolate, Handle<Object> data); 721 static Handle<String> GetMessage(Isolate* isolate, Handle<Object> data);
716 static std::unique_ptr<char[]> GetLocalizedMessage(Isolate* isolate, 722 static std::unique_ptr<char[]> GetLocalizedMessage(Isolate* isolate,
717 Handle<Object> data); 723 Handle<Object> data);
718 }; 724 };
719 725
720 726
721 } // namespace internal 727 } // namespace internal
722 } // namespace v8 728 } // namespace v8
723 729
724 #endif // V8_MESSAGES_H_ 730 #endif // V8_MESSAGES_H_
OLDNEW
« no previous file with comments | « no previous file | src/messages.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698