diff --git a/libraries/script-engine/src/v8/ScriptEngineV8.cpp b/libraries/script-engine/src/v8/ScriptEngineV8.cpp index 72544eed43..2929eecc82 100644 --- a/libraries/script-engine/src/v8/ScriptEngineV8.cpp +++ b/libraries/script-engine/src/v8/ScriptEngineV8.cpp @@ -52,7 +52,6 @@ #include "ScriptObjectV8Proxy.h" #include "ScriptProgramV8Wrapper.h" #include "ScriptValueV8Wrapper.h" -#include "V8Lambda.h" #include "ScriptEngineLoggingV8.h" static const int MAX_DEBUG_VALUE_LENGTH { 80 }; @@ -149,63 +148,6 @@ ScriptValue ScriptEngineV8::checkScriptSyntax(ScriptProgramPointer program) { return undefinedValue(); } -// Lambda -/*ScriptValue ScriptEngineV8::newLambdaFunction(std::function<V8ScriptValue(V8ScriptContext*, ScriptEngineV8*)> operation, - const V8ScriptValue& data, - const ValueOwnership& ownership) { - v8::HandleScope handleScope(_v8Isolate); - v8::Context::Scope contextScope(getContext()); - auto lambda = new Lambda(this, operation, data); - auto object = newQObject(lambda, ownership); - //V8TODO - I'm not sure if this works - auto call = object.property("call"); - call.setPrototype(object); // context->callee().prototype() === Lambda QObject - call.setData(ScriptValue(new ScriptValueV8Wrapper(this, data))); // context->callee().data() will === data param - return call; -}*/ -QString Lambda::toString() const { - v8::Locker locker(_engine->getIsolate()); - v8::Isolate::Scope isolateScope(_engine->getIsolate()); - v8::HandleScope handleScope(_engine->getIsolate()); - v8::Context::Scope contextScope(_engine->getContext()); - v8::Local<v8::String> string; - QString qString(""); - if (_data.constGet()->ToString(_engine->getContext()).ToLocal(&string)) { - v8::String::Utf8Value utf8Value(_engine->getIsolate(), string); - qString = QString(*utf8Value); - } - //V8TODO it was data.isValid() originally - //I have no idea what happens here - return QString("[Lambda%1]").arg((!_data.constGet()->IsNullOrUndefined()) ? " " + qString : qString); -} - -Lambda::~Lambda() { -#ifdef DEBUG_JS_LAMBDA_FUNCS - qCDebug(scriptengine_v8) << "~Lambda" - << "this" << this; -#endif -} - -Lambda::Lambda(ScriptEngineV8* engine, - std::function<V8ScriptValue(ScriptEngineV8*)> operation, - V8ScriptValue data) : - _engine(engine), - _operation(operation), _data(data) { -#ifdef DEBUG_JS_LAMBDA_FUNCS - qCDebug(scriptengine_v8) << "Lambda" << data.toString(); -#endif -} -V8ScriptValue Lambda::call() { - if (!_engine->IS_THREADSAFE_INVOCATION(__FUNCTION__)) { - return V8ScriptValue(_engine, v8::Null(_engine->getIsolate())); - } - // V8TODO: it needs to be done in entirely different way for V8 - Q_ASSERT(false); - //return _operation(_engine->getContext(), _engine); - //return V8ScriptValue(_engine->getIsolate(), v8::Null(_engine->getIsolate())); - //return operation(static_cast<QScriptEngine*>(engine)->currentContext(), engine); -} - #ifdef DEBUG_JS void ScriptEngineV8::_debugDump(const QString& header, const V8ScriptValue& object, const QString& footer) { // V8TODO diff --git a/libraries/script-engine/src/v8/V8Lambda.h b/libraries/script-engine/src/v8/V8Lambda.h deleted file mode 100644 index ad38095365..0000000000 --- a/libraries/script-engine/src/v8/V8Lambda.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// V8Lambda.h -// split from ScriptEngineV8.h -// libraries/script-engine/src/qtscript -// -// Created by Brad Hefta-Gaub on 12/14/13. -// Modified for V8 by dr Karol Suprynowicz on 2022/10/08 -// Copyright 2013 High Fidelity, Inc. -// Copyright 2020 Vircadia contributors. -// Copyright 2022-2023 Overte e.V. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// SPDX-License-Identifier: Apache-2.0 -// - -#ifndef hifi_V8Lambda_h -#define hifi_V8Lambda_h - -#include "ScriptEngineV8.h" -#include "V8Types.h" - -// Lambda helps create callable V8ScriptValues out of std::functions: -// (just meant for use from within the script engine itself) -// V8TODO: this looks like it can be safely removed? -class Lambda : public QObject { - Q_OBJECT -public: - Lambda(ScriptEngineV8* engine, - std::function<V8ScriptValue(ScriptEngineV8* engine)> operation, - V8ScriptValue data); - ~Lambda(); -public slots: - V8ScriptValue call(); - QString toString() const; - -private: - ScriptEngineV8* _engine; - std::function<V8ScriptValue(ScriptEngineV8* engine)> _operation; - V8ScriptValue _data; -}; - -#endif