From bcce8187542d45b8986bd53cda3827d46badb82d Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 27 Sep 2021 11:00:20 +0200 Subject: Fix documentation on JavaScript imports Actually export the functions we use, clarify that import and .import are different, and discourage .import. Fixes: QTBUG-96902 Change-Id: I2471d876c83da3d2110add6005d54311d9261566 Reviewed-by: Maximilian Goldstein (cherry picked from commit 29946505a35f9f52ddc4f3e09e40c52efefad93d) Reviewed-by: Qt Cherry-pick Bot --- .../qml/integrating-javascript/includejs/script.mjs | 3 ++- src/qml/doc/src/javascript/imports.qdoc | 13 +++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/qml/doc/snippets/qml/integrating-javascript/includejs/script.mjs b/src/qml/doc/snippets/qml/integrating-javascript/includejs/script.mjs index 86c3e078c8..1326b8c87a 100644 --- a/src/qml/doc/snippets/qml/integrating-javascript/includejs/script.mjs +++ b/src/qml/doc/snippets/qml/integrating-javascript/includejs/script.mjs @@ -50,8 +50,9 @@ //![0] // script.mjs import { factorial } from "factorial.mjs" +export { factorial } -function showCalculations(value) { +export function showCalculations(value) { console.log( "Call factorial() from script.js:", factorial(value)); diff --git a/src/qml/doc/src/javascript/imports.qdoc b/src/qml/doc/src/javascript/imports.qdoc index 9227f0e604..8d49c02f62 100644 --- a/src/qml/doc/src/javascript/imports.qdoc +++ b/src/qml/doc/src/javascript/imports.qdoc @@ -95,17 +95,18 @@ or modules). A JavaScript resource may import another in the following fashion: \code -.import "filename.js" as Qualifier +import * as MathFunctions from "factorial.mjs"; \endcode -For example: +Or: \code -import * as MathFunctions from "factorial.mjs"; +.import "filename.js" as Qualifier \endcode -The latter is standard ECMAScript syntax for importing ECMAScript modules, and +The former is standard ECMAScript syntax for importing ECMAScript modules, and only works from within ECMAScript modules as denoted by the \c mjs file -extension. The former is an extension to JavaScript provided by the \c QML -engine and will work also with non-modules. +extension. The latter is an extension to JavaScript provided by the \c QML +engine and will work also with non-modules. As an extension superseded by the +ECMAScript standard, its usage is discouraged. When a JavaScript file is imported this way, it is imported with a qualifier. The functions in that file are then accessible from the importing script via the -- cgit v1.2.3