| 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 #include "src/debug/debug-evaluate.h" | 5 #include "src/debug/debug-evaluate.h" |
| 6 | 6 |
| 7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
| 8 #include "src/compiler.h" | 8 #include "src/compiler.h" |
| 9 #include "src/contexts.h" | 9 #include "src/contexts.h" |
| 10 #include "src/debug/debug-frames.h" | 10 #include "src/debug/debug-frames.h" |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 299 Runtime::FunctionForId(id)->name); | 299 Runtime::FunctionForId(id)->name); |
| 300 } | 300 } |
| 301 return false; | 301 return false; |
| 302 } | 302 } |
| 303 } | 303 } |
| 304 | 304 |
| 305 bool BytecodeHasNoSideEffect(interpreter::Bytecode bytecode) { | 305 bool BytecodeHasNoSideEffect(interpreter::Bytecode bytecode) { |
| 306 typedef interpreter::Bytecode Bytecode; | 306 typedef interpreter::Bytecode Bytecode; |
| 307 typedef interpreter::Bytecodes Bytecodes; | 307 typedef interpreter::Bytecodes Bytecodes; |
| 308 if (Bytecodes::IsWithoutExternalSideEffects(bytecode)) return true; | 308 if (Bytecodes::IsWithoutExternalSideEffects(bytecode)) return true; |
| 309 if (Bytecodes::IsCallOrNew(bytecode)) return true; | 309 if (Bytecodes::IsCallOrConstruct(bytecode)) return true; |
| 310 if (Bytecodes::WritesBooleanToAccumulator(bytecode)) return true; | 310 if (Bytecodes::WritesBooleanToAccumulator(bytecode)) return true; |
| 311 if (Bytecodes::IsJumpIfToBoolean(bytecode)) return true; | 311 if (Bytecodes::IsJumpIfToBoolean(bytecode)) return true; |
| 312 if (Bytecodes::IsPrefixScalingBytecode(bytecode)) return true; | 312 if (Bytecodes::IsPrefixScalingBytecode(bytecode)) return true; |
| 313 switch (bytecode) { | 313 switch (bytecode) { |
| 314 // Whitelist for bytecodes. | 314 // Whitelist for bytecodes. |
| 315 // Loads. | 315 // Loads. |
| 316 case Bytecode::kLdaLookupSlot: | 316 case Bytecode::kLdaLookupSlot: |
| 317 case Bytecode::kLdaGlobal: | 317 case Bytecode::kLdaGlobal: |
| 318 case Bytecode::kLdaNamedProperty: | 318 case Bytecode::kLdaNamedProperty: |
| 319 case Bytecode::kLdaKeyedProperty: | 319 case Bytecode::kLdaKeyedProperty: |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 510 | 510 |
| 511 if (FLAG_trace_side_effect_free_debug_evaluate) { | 511 if (FLAG_trace_side_effect_free_debug_evaluate) { |
| 512 PrintF("[debug-evaluate] API Callback at %p may cause side effect.\n", | 512 PrintF("[debug-evaluate] API Callback at %p may cause side effect.\n", |
| 513 reinterpret_cast<void*>(function_addr)); | 513 reinterpret_cast<void*>(function_addr)); |
| 514 } | 514 } |
| 515 return false; | 515 return false; |
| 516 } | 516 } |
| 517 | 517 |
| 518 } // namespace internal | 518 } // namespace internal |
| 519 } // namespace v8 | 519 } // namespace v8 |
| OLD | NEW |