Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 2 files). Show all
Unified · Split
| @@ -4,6 +4,7 @@ · 3 unmodified lines | ||
| 4 | 4 | // |
| 5 | 5 | // Created by Brad Hefta-Gaub on 12/14/13. |
| 6 | 6 | // Copyright 2013 High Fidelity, Inc. |
| 7 | +// Copyright 2020 Vircadia contributors. | |
| 7 | 8 | // |
| 8 | 9 | // Distributed under the Apache License, Version 2.0. |
| 9 | 10 | // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html |
| @@ -1836,7 +1837,7 @@ QScriptValue ScriptEngine::instantiateModule(const QScriptValue& module, const Q · 1826 unmodified lines | ||
| 1836 | 1837 | } |
| 1837 | 1838 | |
| 1838 | 1839 | // CommonJS/Node.js like require/module support |
| 1839 | −QScriptValue ScriptEngine::require(const QString& moduleId) { | |
| 1840 | +QScriptValue ScriptEngine::require(const QString& moduleId, bool forceRedownload) { | |
| 1840 | 1841 | qCDebug(scriptengine_module) << "ScriptEngine::require(" << moduleId.left(MAX_DEBUG_VALUE_LENGTH) << ")"; |
| 1841 | 1842 | if (!IS_THREADSAFE_INVOCATION(thread(), __FUNCTION__)) { |
| 1842 | 1843 | return unboundNullValue(); |
| @@ -1875,7 +1876,7 @@ QScriptValue ScriptEngine::require(const QString& moduleId) { · 32 unmodified lines | ||
| 1875 | 1876 | // `delete Script.require.cache[Script.require.resolve(moduleId)];` |
| 1876 | 1877 | |
| 1877 | 1878 | // cacheMeta is just used right now to tell deleted keys apart from undefined ones |
| 1878 | − bool invalidateCache = module.isUndefined() && cacheMeta.property(moduleId).isValid(); | |
| 1879 | + bool invalidateCache = (module.isUndefined() && cacheMeta.property(moduleId).isValid()) || forceRedownload; | |
| 1879 | 1880 | |
| 1880 | 1881 | // reset the cacheMeta record so invalidation won't apply next time, even if the module fails to load |
| 1881 | 1882 | cacheMeta.setProperty(modulePath, QScriptValue()); |