Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 22 additions & 2 deletions Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -617,6 +617,9 @@ Protocol::ErrorStringOr<std::tuple<Protocol::Debugger::BreakpointId, Ref<Protoco
if (!parseLocation(errorString, location, sourceID, lineNumber, columnNumber))
return makeUnexpected(errorString);

if (!m_scripts.isValidKey(sourceID))
return makeUnexpected("Missing script for scriptId in given location"_s);

auto scriptIterator = m_scripts.find(sourceID);
if (scriptIterator == m_scripts.end())
return makeUnexpected("Missing script for scriptId in given location"_s);
Expand Down Expand Up @@ -1067,6 +1070,12 @@ Protocol::ErrorStringOr<void> InspectorDebuggerAgent::continueToLocation(Ref<JSO
if (!parseLocation(errorString, location, sourceID, lineNumber, columnNumber))
return makeUnexpected(errorString);

if (!m_scripts.isValidKey(sourceID)) {
m_debugger.continueProgram();
m_frontendDispatcher->resumed();
return makeUnexpected("Missing script for scriptId in given location"_s);
}

auto scriptIterator = m_scripts.find(sourceID);
if (scriptIterator == m_scripts.end()) {
m_debugger.continueProgram();
Expand Down Expand Up @@ -1110,7 +1119,11 @@ Protocol::ErrorStringOr<void> InspectorDebuggerAgent::continueToLocation(Ref<JSO

Protocol::ErrorStringOr<Ref<JSON::ArrayOf<Protocol::GenericTypes::SearchMatch>>> InspectorDebuggerAgent::searchInContent(const Protocol::Debugger::ScriptId& scriptId, const String& query, std::optional<bool>&& caseSensitive, std::optional<bool>&& isRegex)
{
auto it = m_scripts.find(parseIntegerAllowingTrailingJunk<JSC::SourceID>(scriptId).value_or(0));
auto sourceID = parseIntegerAllowingTrailingJunk<JSC::SourceID>(scriptId).value_or(JSC::noSourceID);
if (!m_scripts.isValidKey(sourceID))
return makeUnexpected("Missing script for given scriptId"_s);

auto it = m_scripts.find(sourceID);
if (it == m_scripts.end())
return makeUnexpected("Missing script for given scriptId"_s);

Expand All @@ -1119,7 +1132,11 @@ Protocol::ErrorStringOr<Ref<JSON::ArrayOf<Protocol::GenericTypes::SearchMatch>>>

Protocol::ErrorStringOr<String> InspectorDebuggerAgent::getScriptSource(const Protocol::Debugger::ScriptId& scriptId)
{
auto it = m_scripts.find(parseIntegerAllowingTrailingJunk<JSC::SourceID>(scriptId).value_or(0));
auto sourceID = parseIntegerAllowingTrailingJunk<JSC::SourceID>(scriptId).value_or(JSC::noSourceID);
if (!m_scripts.isValidKey(sourceID))
return makeUnexpected("Missing script for given scriptId"_s);

auto it = m_scripts.find(sourceID);
if (it == m_scripts.end())
return makeUnexpected("Missing script for given scriptId"_s);

Expand Down Expand Up @@ -1167,6 +1184,9 @@ Protocol::ErrorStringOr<Ref<JSON::ArrayOf<Protocol::Debugger::Location>>> Inspec
if (startLineNumber == endLineNumber && endColumnNumber < startColumnNumber)
return makeUnexpected("Cannot have columnNumber of given end be before columnNumber of given start"_s);

if (!m_scripts.isValidKey(startSourceID))
return makeUnexpected("Missing script for scriptId in given start"_s);

auto scriptIterator = m_scripts.find(startSourceID);
if (scriptIterator == m_scripts.end())
return makeUnexpected("Missing script for scriptId in given start"_s);
Expand Down
Loading