diff options
Diffstat (limited to '02_library_modularized')
| -rwxr-xr-x | 02_library_modularized/build.sh | 5 | ||||
| -rw-r--r-- | 02_library_modularized/index.html | 16 | ||||
| -rw-r--r-- | 02_library_modularized/library.c | 3 | ||||
| -rw-r--r-- | 02_library_modularized/mime.txt | 1 | ||||
| -rw-r--r-- | 02_library_modularized/program.mjs | 6 | ||||
| -rwxr-xr-x | 02_library_modularized/run-node.sh | 3 | ||||
| -rwxr-xr-x | 02_library_modularized/run-server.sh | 3 | ||||
| -rw-r--r-- | 02_library_modularized/script.mjs | 14 |
8 files changed, 51 insertions, 0 deletions
diff --git a/02_library_modularized/build.sh b/02_library_modularized/build.sh new file mode 100755 index 0000000..f5564fc --- /dev/null +++ b/02_library_modularized/build.sh | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | |||
| 3 | mkdir -p build | ||
| 4 | emcc -sEXPORTED_FUNCTIONS=_multiply -sMODULARIZE -sEXPORT_NAME=MyLibrary \ | ||
| 5 | -o build/library.mjs library.c | ||
diff --git a/02_library_modularized/index.html b/02_library_modularized/index.html new file mode 100644 index 0000000..4b31417 --- /dev/null +++ b/02_library_modularized/index.html | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | <!doctype html> | ||
| 2 | <html lang="en-US"> | ||
| 3 | <head> | ||
| 4 | <meta charset="utf-8" /> | ||
| 5 | <meta name="viewport" content="width=device-width" /> | ||
| 6 | <title>Multiply two numbers</title> | ||
| 7 | <script src="./script.mjs" type="module" defer></script> | ||
| 8 | </head> | ||
| 9 | |||
| 10 | <body> | ||
| 11 | <input id="aInput" /> x <br /> | ||
| 12 | <input id="bInput" /> <button id="goButton">=</button> <br /> | ||
| 13 | <p id="resultText"></p> | ||
| 14 | </body> | ||
| 15 | |||
| 16 | </html> | ||
diff --git a/02_library_modularized/library.c b/02_library_modularized/library.c new file mode 100644 index 0000000..de68b76 --- /dev/null +++ b/02_library_modularized/library.c | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | int multiply(int a, int b) { | ||
| 2 | return a * b; | ||
| 3 | } | ||
diff --git a/02_library_modularized/mime.txt b/02_library_modularized/mime.txt new file mode 100644 index 0000000..6a9a425 --- /dev/null +++ b/02_library_modularized/mime.txt | |||
| @@ -0,0 +1 @@ | |||
| text/javascript mjs | |||
diff --git a/02_library_modularized/program.mjs b/02_library_modularized/program.mjs new file mode 100644 index 0000000..5fc3fcd --- /dev/null +++ b/02_library_modularized/program.mjs | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | import MyLibrary from "./build/library.mjs"; | ||
| 2 | |||
| 3 | var myLibraryInstance = await MyLibrary(); | ||
| 4 | |||
| 5 | const result = myLibraryInstance._multiply(6, 7); | ||
| 6 | console.log("The answer is " + result); | ||
diff --git a/02_library_modularized/run-node.sh b/02_library_modularized/run-node.sh new file mode 100755 index 0000000..a6c9aa8 --- /dev/null +++ b/02_library_modularized/run-node.sh | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | |||
| 3 | node program.mjs | ||
diff --git a/02_library_modularized/run-server.sh b/02_library_modularized/run-server.sh new file mode 100755 index 0000000..12c1a1c --- /dev/null +++ b/02_library_modularized/run-server.sh | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | |||
| 3 | darkhttpd . --mimetypes mime.txt | ||
diff --git a/02_library_modularized/script.mjs b/02_library_modularized/script.mjs new file mode 100644 index 0000000..bac26d4 --- /dev/null +++ b/02_library_modularized/script.mjs | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | import MyLibrary from "./build/library.mjs"; | ||
| 2 | |||
| 3 | var myLibraryInstance = await MyLibrary(); | ||
| 4 | |||
| 5 | var aInput = document.getElementById("aInput"); | ||
| 6 | var bInput = document.getElementById("bInput"); | ||
| 7 | var button = document.getElementById("goButton"); | ||
| 8 | var resultText = document.getElementById("resultText"); | ||
| 9 | |||
| 10 | button.addEventListener("click", () => { | ||
| 11 | var a = Number(aInput.value); | ||
| 12 | var b = Number(bInput.value); | ||
| 13 | resultText.innerText = myLibraryInstance._multiply(a, b); | ||
| 14 | }); | ||
