| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/inspector/v8-debugger-script.h" | 5 #include "src/inspector/v8-debugger-script.h" |
| 6 | 6 |
| 7 #include "src/inspector/protocol-platform.h" | 7 #include "src/inspector/protocol-platform.h" |
| 8 #include "src/inspector/string-util.h" | 8 #include "src/inspector/string-util.h" |
| 9 | 9 |
| 10 namespace v8_inspector { | 10 namespace v8_inspector { |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 hashes[i] = (hashes[i] + zi[i] * (prime[i] - 1)) % prime[i]; | 63 hashes[i] = (hashes[i] + zi[i] * (prime[i] - 1)) % prime[i]; |
| 64 | 64 |
| 65 String16Builder hash; | 65 String16Builder hash; |
| 66 for (size_t i = 0; i < hashesSize; ++i) appendUnsignedAsHex(hashes[i], &hash); | 66 for (size_t i = 0; i < hashesSize; ++i) appendUnsignedAsHex(hashes[i], &hash); |
| 67 return hash.toString(); | 67 return hash.toString(); |
| 68 } | 68 } |
| 69 | 69 |
| 70 V8DebuggerScript::V8DebuggerScript(v8::Isolate* isolate, | 70 V8DebuggerScript::V8DebuggerScript(v8::Isolate* isolate, |
| 71 v8::Local<v8::DebugInterface::Script> script, | 71 v8::Local<v8::DebugInterface::Script> script, |
| 72 bool isLiveEdit) { | 72 bool isLiveEdit) { |
| 73 m_isolate = script->GetIsolate(); |
| 73 m_id = String16::fromInteger(script->Id()); | 74 m_id = String16::fromInteger(script->Id()); |
| 74 v8::Local<v8::String> tmp; | 75 v8::Local<v8::String> tmp; |
| 75 if (script->Name().ToLocal(&tmp)) m_url = toProtocolString(tmp); | 76 if (script->Name().ToLocal(&tmp)) m_url = toProtocolString(tmp); |
| 76 if (script->SourceURL().ToLocal(&tmp)) { | 77 if (script->SourceURL().ToLocal(&tmp)) { |
| 77 m_sourceURL = toProtocolString(tmp); | 78 m_sourceURL = toProtocolString(tmp); |
| 78 if (m_url.isEmpty()) m_url = toProtocolString(tmp); | 79 if (m_url.isEmpty()) m_url = toProtocolString(tmp); |
| 79 } | 80 } |
| 80 if (script->SourceMappingURL().ToLocal(&tmp)) | 81 if (script->SourceMappingURL().ToLocal(&tmp)) |
| 81 m_sourceMappingURL = toProtocolString(tmp); | 82 m_sourceMappingURL = toProtocolString(tmp); |
| 82 m_startLine = script->LineOffset(); | 83 m_startLine = script->LineOffset(); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 106 String16 executionContextId = | 107 String16 executionContextId = |
| 107 contextData.substring(firstComma + 1, secondComma - firstComma - 1); | 108 contextData.substring(firstComma + 1, secondComma - firstComma - 1); |
| 108 bool isOk = false; | 109 bool isOk = false; |
| 109 m_executionContextId = executionContextId.toInteger(&isOk); | 110 m_executionContextId = executionContextId.toInteger(&isOk); |
| 110 if (!isOk) m_executionContextId = 0; | 111 if (!isOk) m_executionContextId = 0; |
| 111 m_executionContextAuxData = contextData.substring(secondComma + 1); | 112 m_executionContextAuxData = contextData.substring(secondComma + 1); |
| 112 } | 113 } |
| 113 } | 114 } |
| 114 | 115 |
| 115 m_isLiveEdit = isLiveEdit; | 116 m_isLiveEdit = isLiveEdit; |
| 117 |
| 116 if (script->Source().ToLocal(&tmp)) { | 118 if (script->Source().ToLocal(&tmp)) { |
| 117 m_source.Reset(isolate, tmp); | 119 m_source.Reset(m_isolate, tmp); |
| 118 String16 source = toProtocolString(tmp); | 120 String16 source = toProtocolString(tmp); |
| 119 m_hash = calculateHash(source); | 121 m_hash = calculateHash(source); |
| 120 // V8 will not count last line if script source ends with \n. | 122 // V8 will not count last line if script source ends with \n. |
| 121 if (source.length() > 1 && source[source.length() - 1] == '\n') { | 123 if (source.length() > 1 && source[source.length() - 1] == '\n') { |
| 122 m_endLine++; | 124 m_endLine++; |
| 123 m_endColumn = 0; | 125 m_endColumn = 0; |
| 124 } | 126 } |
| 125 } | 127 } |
| 128 |
| 129 m_script.Reset(m_isolate, script); |
| 126 } | 130 } |
| 127 | 131 |
| 128 V8DebuggerScript::~V8DebuggerScript() {} | 132 V8DebuggerScript::~V8DebuggerScript() {} |
| 129 | 133 |
| 130 const String16& V8DebuggerScript::sourceURL() const { | 134 const String16& V8DebuggerScript::sourceURL() const { |
| 131 return m_sourceURL.isEmpty() ? m_url : m_sourceURL; | 135 return m_sourceURL.isEmpty() ? m_url : m_sourceURL; |
| 132 } | 136 } |
| 133 | 137 |
| 134 v8::Local<v8::String> V8DebuggerScript::source(v8::Isolate* isolate) const { | 138 v8::Local<v8::String> V8DebuggerScript::source(v8::Isolate* isolate) const { |
| 135 return m_source.Get(isolate); | 139 return m_source.Get(isolate); |
| 136 } | 140 } |
| 137 | 141 |
| 138 void V8DebuggerScript::setSourceURL(const String16& sourceURL) { | 142 void V8DebuggerScript::setSourceURL(const String16& sourceURL) { |
| 139 m_sourceURL = sourceURL; | 143 m_sourceURL = sourceURL; |
| 140 } | 144 } |
| 141 | 145 |
| 142 void V8DebuggerScript::setSourceMappingURL(const String16& sourceMappingURL) { | 146 void V8DebuggerScript::setSourceMappingURL(const String16& sourceMappingURL) { |
| 143 m_sourceMappingURL = sourceMappingURL; | 147 m_sourceMappingURL = sourceMappingURL; |
| 144 } | 148 } |
| 145 | 149 |
| 146 void V8DebuggerScript::setSource(v8::Isolate* isolate, | 150 void V8DebuggerScript::setSource(v8::Local<v8::String> source) { |
| 147 v8::Local<v8::String> source) { | 151 m_source.Reset(m_isolate, source); |
| 148 m_source.Reset(isolate, source); | |
| 149 m_hash = calculateHash(toProtocolString(source)); | 152 m_hash = calculateHash(toProtocolString(source)); |
| 150 } | 153 } |
| 151 | 154 |
| 155 bool V8DebuggerScript::getPossibleBreakpoints(int startLine, int startColumn, |
| 156 int endLine, int endColumn, |
| 157 std::vector<int>& positions) { |
| 158 v8::HandleScope scope(m_isolate); |
| 159 v8::Local<v8::DebugInterface::Script> script = m_script.Get(m_isolate); |
| 160 return script->GetPossibleBreakpoints(startLine, startColumn, endLine, |
| 161 endColumn, positions); |
| 162 } |
| 163 |
| 152 } // namespace v8_inspector | 164 } // namespace v8_inspector |
| OLD | NEW |