diff options
author | Michaël Zasso <targos@protonmail.com> | 2019-03-12 09:01:49 +0100 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2019-03-14 18:49:21 +0100 |
commit | 7b48713334469818661fe276cf571de9c7899f2d (patch) | |
tree | 4dbda49ac88db76ce09dc330a0cb587e68e139ba /deps/v8/src/inspector/inspected-context.cc | |
parent | 8549ac09b256666cf5275224ec58fab9939ff32e (diff) | |
download | android-node-v8-7b48713334469818661fe276cf571de9c7899f2d.tar.gz android-node-v8-7b48713334469818661fe276cf571de9c7899f2d.tar.bz2 android-node-v8-7b48713334469818661fe276cf571de9c7899f2d.zip |
deps: update V8 to 7.3.492.25
PR-URL: https://github.com/nodejs/node/pull/25852
Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Diffstat (limited to 'deps/v8/src/inspector/inspected-context.cc')
-rw-r--r-- | deps/v8/src/inspector/inspected-context.cc | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/deps/v8/src/inspector/inspected-context.cc b/deps/v8/src/inspector/inspected-context.cc index bb98c87158..92f64c2cb9 100644 --- a/deps/v8/src/inspector/inspected-context.cc +++ b/deps/v8/src/inspector/inspected-context.cc @@ -109,18 +109,40 @@ InjectedScript* InspectedContext::getInjectedScript(int sessionId) { return it == m_injectedScripts.end() ? nullptr : it->second.get(); } -bool InspectedContext::createInjectedScript(int sessionId) { +InjectedScript* InspectedContext::createInjectedScript(int sessionId) { std::unique_ptr<InjectedScript> injectedScript = - InjectedScript::create(this, sessionId); - // InjectedScript::create can destroy |this|. - if (!injectedScript) return false; + v8::base::make_unique<InjectedScript>(this, sessionId); CHECK(m_injectedScripts.find(sessionId) == m_injectedScripts.end()); m_injectedScripts[sessionId] = std::move(injectedScript); - return true; + return getInjectedScript(sessionId); } void InspectedContext::discardInjectedScript(int sessionId) { m_injectedScripts.erase(sessionId); } +bool InspectedContext::addInternalObject(v8::Local<v8::Object> object, + V8InternalValueType type) { + if (m_internalObjects.IsEmpty()) { + m_internalObjects.Reset(isolate(), v8::debug::WeakMap::New(isolate())); + } + return !m_internalObjects.Get(isolate()) + ->Set(m_context.Get(isolate()), object, + v8::Integer::New(isolate(), static_cast<int>(type))) + .IsEmpty(); +} + +V8InternalValueType InspectedContext::getInternalType( + v8::Local<v8::Object> object) { + if (m_internalObjects.IsEmpty()) return V8InternalValueType::kNone; + v8::Local<v8::Value> typeValue; + if (!m_internalObjects.Get(isolate()) + ->Get(m_context.Get(isolate()), object) + .ToLocal(&typeValue) || + !typeValue->IsUint32()) { + return V8InternalValueType::kNone; + } + return static_cast<V8InternalValueType>(typeValue.As<v8::Int32>()->Value()); +} + } // namespace v8_inspector |