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 |