| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ | 5 #ifndef V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ |
| 6 #define V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ | 6 #define V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ |
| 7 | 7 |
| 8 #include "src/ast/ast.h" | 8 #include "src/ast/ast.h" |
| 9 #include "src/base/compiler-specific.h" | 9 #include "src/base/compiler-specific.h" |
| 10 #include "src/globals.h" | 10 #include "src/globals.h" |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 307 BytecodeArrayBuilder& GetSuperConstructor(Register out); | 307 BytecodeArrayBuilder& GetSuperConstructor(Register out); |
| 308 | 308 |
| 309 // Deletes property from an object. This expects that accumulator contains | 309 // Deletes property from an object. This expects that accumulator contains |
| 310 // the key to be deleted and the register contains a reference to the object. | 310 // the key to be deleted and the register contains a reference to the object. |
| 311 BytecodeArrayBuilder& Delete(Register object, LanguageMode language_mode); | 311 BytecodeArrayBuilder& Delete(Register object, LanguageMode language_mode); |
| 312 | 312 |
| 313 // Tests. | 313 // Tests. |
| 314 BytecodeArrayBuilder& CompareOperation(Token::Value op, Register reg, | 314 BytecodeArrayBuilder& CompareOperation(Token::Value op, Register reg, |
| 315 int feedback_slot); | 315 int feedback_slot); |
| 316 BytecodeArrayBuilder& CompareOperation(Token::Value op, Register reg); | 316 BytecodeArrayBuilder& CompareOperation(Token::Value op, Register reg); |
| 317 BytecodeArrayBuilder& CompareUndetectable(); |
| 318 BytecodeArrayBuilder& CompareUndefined(); |
| 319 BytecodeArrayBuilder& CompareNull(); |
| 320 BytecodeArrayBuilder& CompareNil(Token::Value op, NilValue nil); |
| 317 BytecodeArrayBuilder& CompareTypeOf( | 321 BytecodeArrayBuilder& CompareTypeOf( |
| 318 TestTypeOfFlags::LiteralFlag literal_flag); | 322 TestTypeOfFlags::LiteralFlag literal_flag); |
| 319 | 323 |
| 320 // Converts accumulator and stores result in register |out|. | 324 // Converts accumulator and stores result in register |out|. |
| 321 BytecodeArrayBuilder& ConvertAccumulatorToObject(Register out); | 325 BytecodeArrayBuilder& ConvertAccumulatorToObject(Register out); |
| 322 BytecodeArrayBuilder& ConvertAccumulatorToName(Register out); | 326 BytecodeArrayBuilder& ConvertAccumulatorToName(Register out); |
| 323 BytecodeArrayBuilder& ConvertAccumulatorToNumber(Register out); | 327 BytecodeArrayBuilder& ConvertAccumulatorToNumber(Register out); |
| 324 | 328 |
| 325 // Flow Control. | 329 // Flow Control. |
| 326 BytecodeArrayBuilder& Bind(BytecodeLabel* label); | 330 BytecodeArrayBuilder& Bind(BytecodeLabel* label); |
| 327 BytecodeArrayBuilder& Bind(const BytecodeLabel& target, BytecodeLabel* label); | 331 BytecodeArrayBuilder& Bind(const BytecodeLabel& target, BytecodeLabel* label); |
| 328 | 332 |
| 329 BytecodeArrayBuilder& Jump(BytecodeLabel* label); | 333 BytecodeArrayBuilder& Jump(BytecodeLabel* label); |
| 330 BytecodeArrayBuilder& JumpIfTrue(BytecodeLabel* label); | 334 BytecodeArrayBuilder& JumpIfTrue(BytecodeLabel* label); |
| 331 BytecodeArrayBuilder& JumpIfFalse(BytecodeLabel* label); | 335 BytecodeArrayBuilder& JumpIfFalse(BytecodeLabel* label); |
| 332 BytecodeArrayBuilder& JumpIfNotHole(BytecodeLabel* label); | 336 BytecodeArrayBuilder& JumpIfNotHole(BytecodeLabel* label); |
| 333 BytecodeArrayBuilder& JumpIfJSReceiver(BytecodeLabel* label); | 337 BytecodeArrayBuilder& JumpIfJSReceiver(BytecodeLabel* label); |
| 334 BytecodeArrayBuilder& JumpIfNull(BytecodeLabel* label); | 338 BytecodeArrayBuilder& JumpIfNull(BytecodeLabel* label); |
| 339 BytecodeArrayBuilder& JumpIfNotNull(BytecodeLabel* label); |
| 335 BytecodeArrayBuilder& JumpIfUndefined(BytecodeLabel* label); | 340 BytecodeArrayBuilder& JumpIfUndefined(BytecodeLabel* label); |
| 341 BytecodeArrayBuilder& JumpIfNotUndefined(BytecodeLabel* label); |
| 342 BytecodeArrayBuilder& JumpIfNil(BytecodeLabel* label, Token::Value op, |
| 343 NilValue nil); |
| 344 BytecodeArrayBuilder& JumpIfNotNil(BytecodeLabel* label, Token::Value op, |
| 345 NilValue nil); |
| 336 BytecodeArrayBuilder& JumpLoop(BytecodeLabel* label, int loop_depth); | 346 BytecodeArrayBuilder& JumpLoop(BytecodeLabel* label, int loop_depth); |
| 337 | 347 |
| 338 BytecodeArrayBuilder& StackCheck(int position); | 348 BytecodeArrayBuilder& StackCheck(int position); |
| 339 | 349 |
| 340 // Sets the pending message to the value in the accumulator, and returns the | 350 // Sets the pending message to the value in the accumulator, and returns the |
| 341 // previous pending message in the accumulator. | 351 // previous pending message in the accumulator. |
| 342 BytecodeArrayBuilder& SetPendingMessage(); | 352 BytecodeArrayBuilder& SetPendingMessage(); |
| 343 | 353 |
| 344 BytecodeArrayBuilder& Throw(); | 354 BytecodeArrayBuilder& Throw(); |
| 345 BytecodeArrayBuilder& ReThrow(); | 355 BytecodeArrayBuilder& ReThrow(); |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 493 static int const kNoFeedbackSlot = 0; | 503 static int const kNoFeedbackSlot = 0; |
| 494 | 504 |
| 495 DISALLOW_COPY_AND_ASSIGN(BytecodeArrayBuilder); | 505 DISALLOW_COPY_AND_ASSIGN(BytecodeArrayBuilder); |
| 496 }; | 506 }; |
| 497 | 507 |
| 498 } // namespace interpreter | 508 } // namespace interpreter |
| 499 } // namespace internal | 509 } // namespace internal |
| 500 } // namespace v8 | 510 } // namespace v8 |
| 501 | 511 |
| 502 #endif // V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ | 512 #endif // V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ |
| OLD | NEW |