| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 context_->Enter(); | 136 context_->Enter(); |
| 137 } | 137 } |
| 138 inline ~DebugLocalContext() { | 138 inline ~DebugLocalContext() { |
| 139 context_->Exit(); | 139 context_->Exit(); |
| 140 context_.Dispose(context_->GetIsolate()); | 140 context_.Dispose(context_->GetIsolate()); |
| 141 } | 141 } |
| 142 inline v8::Context* operator->() { return *context_; } | 142 inline v8::Context* operator->() { return *context_; } |
| 143 inline v8::Context* operator*() { return *context_; } | 143 inline v8::Context* operator*() { return *context_; } |
| 144 inline bool IsReady() { return !context_.IsEmpty(); } | 144 inline bool IsReady() { return !context_.IsEmpty(); } |
| 145 void ExposeDebug() { | 145 void ExposeDebug() { |
| 146 v8::internal::Isolate* isolate = v8::internal::Isolate::Current(); | 146 v8::internal::Isolate* isolate = |
| 147 reinterpret_cast<v8::internal::Isolate*>(context_->GetIsolate()); |
| 147 v8::internal::Debug* debug = isolate->debug(); | 148 v8::internal::Debug* debug = isolate->debug(); |
| 148 // Expose the debug context global object in the global object for testing. | 149 // Expose the debug context global object in the global object for testing. |
| 149 debug->Load(); | 150 debug->Load(); |
| 150 debug->debug_context()->set_security_token( | 151 debug->debug_context()->set_security_token( |
| 151 v8::Utils::OpenHandle(*context_)->security_token()); | 152 v8::Utils::OpenHandle(*context_)->security_token()); |
| 152 | 153 |
| 153 Handle<JSGlobalProxy> global(Handle<JSGlobalProxy>::cast( | 154 Handle<JSGlobalProxy> global(Handle<JSGlobalProxy>::cast( |
| 154 v8::Utils::OpenHandle(*context_->Global()))); | 155 v8::Utils::OpenHandle(*context_->Global()))); |
| 155 Handle<v8::internal::String> debug_string = | 156 Handle<v8::internal::String> debug_string = |
| 156 FACTORY->LookupOneByteSymbol(STATIC_ASCII_VECTOR("debug")); | 157 FACTORY->LookupOneByteSymbol(STATIC_ASCII_VECTOR("debug")); |
| 157 SetProperty(isolate, global, debug_string, | 158 SetProperty(isolate, global, debug_string, |
| 158 Handle<Object>(debug->debug_context()->global_proxy()), DONT_ENUM, | 159 Handle<Object>(debug->debug_context()->global_proxy(), isolate), |
| 159 ::v8::internal::kNonStrictMode); | 160 DONT_ENUM, |
| 161 ::v8::internal::kNonStrictMode); |
| 160 } | 162 } |
| 161 | 163 |
| 162 private: | 164 private: |
| 163 v8::Persistent<v8::Context> context_; | 165 v8::Persistent<v8::Context> context_; |
| 164 }; | 166 }; |
| 165 | 167 |
| 166 | 168 |
| 167 // --- H e l p e r F u n c t i o n s | 169 // --- H e l p e r F u n c t i o n s |
| 168 | 170 |
| 169 | 171 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 191 Handle<v8::internal::JSFunction> f = v8::Utils::OpenHandle(*fun); | 193 Handle<v8::internal::JSFunction> f = v8::Utils::OpenHandle(*fun); |
| 192 Handle<v8::internal::SharedFunctionInfo> shared(f->shared()); | 194 Handle<v8::internal::SharedFunctionInfo> shared(f->shared()); |
| 193 return Debug::HasDebugInfo(shared); | 195 return Debug::HasDebugInfo(shared); |
| 194 } | 196 } |
| 195 | 197 |
| 196 | 198 |
| 197 // Set a break point in a function and return the associated break point | 199 // Set a break point in a function and return the associated break point |
| 198 // number. | 200 // number. |
| 199 static int SetBreakPoint(Handle<v8::internal::JSFunction> fun, int position) { | 201 static int SetBreakPoint(Handle<v8::internal::JSFunction> fun, int position) { |
| 200 static int break_point = 0; | 202 static int break_point = 0; |
| 201 v8::internal::Debug* debug = v8::internal::Isolate::Current()->debug(); | 203 v8::internal::Isolate* isolate = fun->GetIsolate(); |
| 204 v8::internal::Debug* debug = isolate->debug(); |
| 202 debug->SetBreakPoint( | 205 debug->SetBreakPoint( |
| 203 fun, | 206 fun, |
| 204 Handle<Object>(v8::internal::Smi::FromInt(++break_point)), | 207 Handle<Object>(v8::internal::Smi::FromInt(++break_point), isolate), |
| 205 &position); | 208 &position); |
| 206 return break_point; | 209 return break_point; |
| 207 } | 210 } |
| 208 | 211 |
| 209 | 212 |
| 210 // Set a break point in a function and return the associated break point | 213 // Set a break point in a function and return the associated break point |
| 211 // number. | 214 // number. |
| 212 static int SetBreakPoint(v8::Handle<v8::Function> fun, int position) { | 215 static int SetBreakPoint(v8::Handle<v8::Function> fun, int position) { |
| 213 return SetBreakPoint(v8::Utils::OpenHandle(*fun), position); | 216 return SetBreakPoint(v8::Utils::OpenHandle(*fun), position); |
| 214 } | 217 } |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 275 v8::Handle<v8::String> str = v8::String::New(buffer.start()); | 278 v8::Handle<v8::String> str = v8::String::New(buffer.start()); |
| 276 v8::Handle<v8::Value> value = v8::Script::Compile(str)->Run(); | 279 v8::Handle<v8::Value> value = v8::Script::Compile(str)->Run(); |
| 277 CHECK(!try_catch.HasCaught()); | 280 CHECK(!try_catch.HasCaught()); |
| 278 return value->Int32Value(); | 281 return value->Int32Value(); |
| 279 } | 282 } |
| 280 } | 283 } |
| 281 | 284 |
| 282 | 285 |
| 283 // Clear a break point. | 286 // Clear a break point. |
| 284 static void ClearBreakPoint(int break_point) { | 287 static void ClearBreakPoint(int break_point) { |
| 285 v8::internal::Debug* debug = v8::internal::Isolate::Current()->debug(); | 288 v8::internal::Isolate* isolate = v8::internal::Isolate::Current(); |
| 289 v8::internal::Debug* debug = isolate->debug(); |
| 286 debug->ClearBreakPoint( | 290 debug->ClearBreakPoint( |
| 287 Handle<Object>(v8::internal::Smi::FromInt(break_point))); | 291 Handle<Object>(v8::internal::Smi::FromInt(break_point), isolate)); |
| 288 } | 292 } |
| 289 | 293 |
| 290 | 294 |
| 291 // Clear a break point using the global Debug object. | 295 // Clear a break point using the global Debug object. |
| 292 static void ClearBreakPointFromJS(int break_point_number) { | 296 static void ClearBreakPointFromJS(int break_point_number) { |
| 293 EmbeddedVector<char, SMALL_STRING_BUFFER_SIZE> buffer; | 297 EmbeddedVector<char, SMALL_STRING_BUFFER_SIZE> buffer; |
| 294 OS::SNPrintF(buffer, | 298 OS::SNPrintF(buffer, |
| 295 "debug.Debug.clearBreakPoint(%d)", | 299 "debug.Debug.clearBreakPoint(%d)", |
| 296 break_point_number); | 300 break_point_number); |
| 297 buffer[SMALL_STRING_BUFFER_SIZE - 1] = '\0'; | 301 buffer[SMALL_STRING_BUFFER_SIZE - 1] = '\0'; |
| (...skipping 7225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7523 TEST(LiveEditDisabled) { | 7527 TEST(LiveEditDisabled) { |
| 7524 v8::internal::FLAG_allow_natives_syntax = true; | 7528 v8::internal::FLAG_allow_natives_syntax = true; |
| 7525 v8::HandleScope scope; | 7529 v8::HandleScope scope; |
| 7526 LocalContext context; | 7530 LocalContext context; |
| 7527 v8::Debug::SetLiveEditEnabled(false); | 7531 v8::Debug::SetLiveEditEnabled(false); |
| 7528 CompileRun("%LiveEditCompareStrings('', '')"); | 7532 CompileRun("%LiveEditCompareStrings('', '')"); |
| 7529 } | 7533 } |
| 7530 | 7534 |
| 7531 | 7535 |
| 7532 #endif // ENABLE_DEBUGGER_SUPPORT | 7536 #endif // ENABLE_DEBUGGER_SUPPORT |
| OLD | NEW |