aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qv4compileddata_p.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2018-08-13 11:57:03 +0200
committerSimon Hausmann <simon.hausmann@qt.io>2018-08-14 17:45:26 +0000
commitbae423474b51fd0651aaea7cb18071a2206109b1 (patch)
tree5ab99d090970c1ec7882df929747a15b0a03515f /src/qml/compiler/qv4compileddata_p.h
parent414d8f65786ed3d2020dd85965224a59068a0d5d (diff)
Implement indirect exports in modules
This allows exports in the style of export { foo as bar } from "./baz.js" Change-Id: I2f723c3d9c5fbc530a30ac5bcb12a02f21918648 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/compiler/qv4compileddata_p.h')
-rw-r--r--src/qml/compiler/qv4compileddata_p.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/qml/compiler/qv4compileddata_p.h b/src/qml/compiler/qv4compileddata_p.h
index f6face5f6e..7cd9e83dbd 100644
--- a/src/qml/compiler/qv4compileddata_p.h
+++ b/src/qml/compiler/qv4compileddata_p.h
@@ -1163,7 +1163,6 @@ public:
QStringList moduleRequests() const;
Heap::Module *instantiate(ExecutionEngine *engine);
const Value *resolveExport(QV4::String *exportName);
- Heap::String *localNameForExportName(QV4::String *exportName) const;
void evaluate();
QV4::Function *linkToEngine(QV4::ExecutionEngine *engine);
@@ -1186,6 +1185,18 @@ protected:
private:
void destroy();
+ struct ResolveSetEntry
+ {
+ ResolveSetEntry() {}
+ ResolveSetEntry(CompilationUnit *module, QV4::String *exportName)
+ : module(module), exportName(exportName) {}
+ CompilationUnit *module = nullptr;
+ QV4::String *exportName = nullptr;
+ };
+
+ const Value *resolveExportRecursively(QV4::String *exportName, QVector<ResolveSetEntry> *resolveSet);
+ const ExportEntry *lookupNameInExportTable(const ExportEntry *firstExportEntry, int tableSize, QV4::String *name) const;
+
QString m_fileName; // initialized from data->sourceFileIndex
QString m_finalUrlString; // initialized from data->finalUrlIndex