OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 #ifndef V8_COMPILER_JS_OPERATOR_H_ | 5 #ifndef V8_COMPILER_JS_OPERATOR_H_ |
6 #define V8_COMPILER_JS_OPERATOR_H_ | 6 #define V8_COMPILER_JS_OPERATOR_H_ |
7 | 7 |
8 #include "src/runtime/runtime.h" | 8 #include "src/runtime/runtime.h" |
9 #include "src/unique.h" | 9 #include "src/unique.h" |
10 | 10 |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 | 216 |
217 DynamicContextAccess const& DynamicContextAccessOf(Operator const*); | 217 DynamicContextAccess const& DynamicContextAccessOf(Operator const*); |
218 | 218 |
219 | 219 |
220 // Defines the property being loaded from an object by a named load. This is | 220 // Defines the property being loaded from an object by a named load. This is |
221 // used as a parameter by JSLoadNamed operators. | 221 // used as a parameter by JSLoadNamed operators. |
222 class LoadNamedParameters final { | 222 class LoadNamedParameters final { |
223 public: | 223 public: |
224 LoadNamedParameters(const Unique<Name>& name, | 224 LoadNamedParameters(const Unique<Name>& name, |
225 const ResolvedFeedbackSlot& feedback, | 225 const ResolvedFeedbackSlot& feedback, |
226 LanguageMode language_mode, | |
227 ContextualMode contextual_mode) | 226 ContextualMode contextual_mode) |
228 : name_(name), | 227 : name_(name), feedback_(feedback), contextual_mode_(contextual_mode) {} |
229 feedback_(feedback), | |
230 language_mode_(language_mode), | |
231 contextual_mode_(contextual_mode) {} | |
232 | 228 |
233 const Unique<Name>& name() const { return name_; } | 229 const Unique<Name>& name() const { return name_; } |
234 LanguageMode language_mode() const { return language_mode_; } | |
235 ContextualMode contextual_mode() const { return contextual_mode_; } | 230 ContextualMode contextual_mode() const { return contextual_mode_; } |
236 | 231 |
237 const ResolvedFeedbackSlot& feedback() const { return feedback_; } | 232 const ResolvedFeedbackSlot& feedback() const { return feedback_; } |
238 | 233 |
239 private: | 234 private: |
240 const Unique<Name> name_; | 235 const Unique<Name> name_; |
241 const ResolvedFeedbackSlot feedback_; | 236 const ResolvedFeedbackSlot feedback_; |
242 const LanguageMode language_mode_; | |
243 const ContextualMode contextual_mode_; | 237 const ContextualMode contextual_mode_; |
244 }; | 238 }; |
245 | 239 |
246 bool operator==(LoadNamedParameters const&, LoadNamedParameters const&); | 240 bool operator==(LoadNamedParameters const&, LoadNamedParameters const&); |
247 bool operator!=(LoadNamedParameters const&, LoadNamedParameters const&); | 241 bool operator!=(LoadNamedParameters const&, LoadNamedParameters const&); |
248 | 242 |
249 size_t hash_value(LoadNamedParameters const&); | 243 size_t hash_value(LoadNamedParameters const&); |
250 | 244 |
251 std::ostream& operator<<(std::ostream&, LoadNamedParameters const&); | 245 std::ostream& operator<<(std::ostream&, LoadNamedParameters const&); |
252 | 246 |
253 const LoadNamedParameters& LoadNamedParametersOf(const Operator* op); | 247 const LoadNamedParameters& LoadNamedParametersOf(const Operator* op); |
254 | 248 |
255 | 249 |
256 // Defines the property being loaded from an object. This is | 250 // Defines the property being loaded from an object. This is |
257 // used as a parameter by JSLoadProperty operators. | 251 // used as a parameter by JSLoadProperty operators. |
258 class LoadPropertyParameters final { | 252 class LoadPropertyParameters final { |
259 public: | 253 public: |
260 explicit LoadPropertyParameters(const ResolvedFeedbackSlot& feedback, | 254 explicit LoadPropertyParameters(const ResolvedFeedbackSlot& feedback) |
261 LanguageMode language_mode) | 255 : feedback_(feedback) {} |
262 : feedback_(feedback), language_mode_(language_mode) {} | |
263 | 256 |
264 const ResolvedFeedbackSlot& feedback() const { return feedback_; } | 257 const ResolvedFeedbackSlot& feedback() const { return feedback_; } |
265 | 258 |
266 LanguageMode language_mode() const { return language_mode_; } | |
267 | |
268 private: | 259 private: |
269 const ResolvedFeedbackSlot feedback_; | 260 const ResolvedFeedbackSlot feedback_; |
270 const LanguageMode language_mode_; | |
271 }; | 261 }; |
272 | 262 |
273 bool operator==(LoadPropertyParameters const&, LoadPropertyParameters const&); | 263 bool operator==(LoadPropertyParameters const&, LoadPropertyParameters const&); |
274 bool operator!=(LoadPropertyParameters const&, LoadPropertyParameters const&); | 264 bool operator!=(LoadPropertyParameters const&, LoadPropertyParameters const&); |
275 | 265 |
276 size_t hash_value(LoadPropertyParameters const&); | 266 size_t hash_value(LoadPropertyParameters const&); |
277 | 267 |
278 std::ostream& operator<<(std::ostream&, LoadPropertyParameters const&); | 268 std::ostream& operator<<(std::ostream&, LoadPropertyParameters const&); |
279 | 269 |
280 const LoadPropertyParameters& LoadPropertyParametersOf(const Operator* op); | 270 const LoadPropertyParameters& LoadPropertyParametersOf(const Operator* op); |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
371 PretenureFlag pretenure); | 361 PretenureFlag pretenure); |
372 const Operator* CreateLiteralArray(int literal_flags); | 362 const Operator* CreateLiteralArray(int literal_flags); |
373 const Operator* CreateLiteralObject(int literal_flags); | 363 const Operator* CreateLiteralObject(int literal_flags); |
374 | 364 |
375 const Operator* CallFunction(size_t arity, CallFunctionFlags flags, | 365 const Operator* CallFunction(size_t arity, CallFunctionFlags flags, |
376 LanguageMode language_mode); | 366 LanguageMode language_mode); |
377 const Operator* CallRuntime(Runtime::FunctionId id, size_t arity); | 367 const Operator* CallRuntime(Runtime::FunctionId id, size_t arity); |
378 | 368 |
379 const Operator* CallConstruct(int arguments); | 369 const Operator* CallConstruct(int arguments); |
380 | 370 |
381 const Operator* LoadProperty(const ResolvedFeedbackSlot& feedback, | 371 const Operator* LoadProperty(const ResolvedFeedbackSlot& feedback); |
382 LanguageMode language_mode); | |
383 const Operator* LoadNamed(const Unique<Name>& name, | 372 const Operator* LoadNamed(const Unique<Name>& name, |
384 const ResolvedFeedbackSlot& feedback, | 373 const ResolvedFeedbackSlot& feedback, |
385 LanguageMode language_mode, | |
386 ContextualMode contextual_mode = NOT_CONTEXTUAL); | 374 ContextualMode contextual_mode = NOT_CONTEXTUAL); |
387 | 375 |
388 const Operator* StoreProperty(LanguageMode language_mode); | 376 const Operator* StoreProperty(LanguageMode language_mode); |
389 const Operator* StoreNamed(LanguageMode language_mode, | 377 const Operator* StoreNamed(LanguageMode language_mode, |
390 const Unique<Name>& name); | 378 const Unique<Name>& name); |
391 | 379 |
392 const Operator* DeleteProperty(LanguageMode language_mode); | 380 const Operator* DeleteProperty(LanguageMode language_mode); |
393 | 381 |
394 const Operator* HasProperty(); | 382 const Operator* HasProperty(); |
395 | 383 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 Zone* const zone_; | 417 Zone* const zone_; |
430 | 418 |
431 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder); | 419 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder); |
432 }; | 420 }; |
433 | 421 |
434 } // namespace compiler | 422 } // namespace compiler |
435 } // namespace internal | 423 } // namespace internal |
436 } // namespace v8 | 424 } // namespace v8 |
437 | 425 |
438 #endif // V8_COMPILER_JS_OPERATOR_H_ | 426 #endif // V8_COMPILER_JS_OPERATOR_H_ |
OLD | NEW |