nadesiko3 3.5.1 → 3.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/core/package.json +1 -1
- package/core/src/nako_core_version.mjs +2 -2
- package/core/src/nako_core_version.mts +2 -2
- package/core/src/nako_from_dncl2.mjs +2 -1
- package/core/src/nako_from_dncl2.mts +2 -1
- package/core/src/nako_parser3.mjs +1 -1
- package/core/src/nako_parser3.mts +1 -1
- package/core/src/plugin_system.mjs +1 -1
- package/core/src/plugin_system.mts +1 -1
- package/core/test/dncl2_test.mjs +40 -12
- package/package.json +2 -2
- package/release/_hash.txt +16 -16
- package/release/_script-tags.txt +13 -13
- package/release/plugin_webworker.js +1 -1
- package/release/plugin_webworker.js.map +1 -1
- package/release/stats.json +1 -1
- package/release/version.js +1 -1
- package/release/version.js.map +1 -1
- package/release/wnako3.js +1 -1
- package/release/wnako3.js.map +1 -1
- package/release/wnako3webworker.js +1 -1
- package/release/wnako3webworker.js.map +1 -1
- package/src/nako_version.mjs +2 -2
- package/src/nako_version.mts +2 -2
- package/src/plugin_webworker.mjs +39 -2
- package/src/wnako3mod.mjs +1 -0
- package/src/wnako3mod.mts +2 -0
- package/src/wnako3webworker.mjs +17 -0
package/README.md
CHANGED
|
@@ -118,9 +118,13 @@ sudo apt install xdotool
|
|
|
118
118
|
|
|
119
119
|
```bash
|
|
120
120
|
npm test
|
|
121
|
-
npm run test:all
|
|
122
121
|
```
|
|
123
122
|
|
|
123
|
+
## Colabでビルドテスト
|
|
124
|
+
|
|
125
|
+
Google Colabでなでしこのビルドテストできます。
|
|
126
|
+
- [ノートブック](https://colab.research.google.com/drive/1a-Choj3tCBCA1R7x7vPdNQN48vGzBd7E?usp=sharing)
|
|
127
|
+
|
|
124
128
|
## なでしこの開発履歴
|
|
125
129
|
|
|
126
130
|
「なでしこ3」の開発は2017年に始まり、以後コツコツとバージョンアップを続けています。
|
package/core/package.json
CHANGED
|
@@ -19,7 +19,8 @@ const DNCL_SIMPLES = {
|
|
|
19
19
|
// 'word:or': ['or', 'または'],
|
|
20
20
|
'word:not': ['not', '!'],
|
|
21
21
|
'word:乱数': ['word', '乱数範囲'],
|
|
22
|
-
'word:表示': ['word', '連続表示']
|
|
22
|
+
'word:表示': ['word', '連続表示'],
|
|
23
|
+
'word:と定義': ['ここまで', 'ここまで'] // 「と定義」→「ここまで」
|
|
23
24
|
};
|
|
24
25
|
/**
|
|
25
26
|
* DNCLのソースコードをなでしこに変換する
|
|
@@ -22,7 +22,8 @@ const DNCL_SIMPLES: { [key: string]: string[] } = {
|
|
|
22
22
|
// 'word:or': ['or', 'または'],
|
|
23
23
|
'word:not': ['not', '!'],
|
|
24
24
|
'word:乱数': ['word', '乱数範囲'],
|
|
25
|
-
'word:表示': ['word', '連続表示']
|
|
25
|
+
'word:表示': ['word', '連続表示'],
|
|
26
|
+
'word:と定義': ['ここまで', 'ここまで'] // 「と定義」→「ここまで」
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
/**
|
|
@@ -197,7 +197,7 @@ export class NakoParser extends NakoParserBase {
|
|
|
197
197
|
}
|
|
198
198
|
return null;
|
|
199
199
|
}
|
|
200
|
-
/** [廃止] 非同期モード @returns {Ast} */
|
|
200
|
+
/** [廃止] 非同期モード #11 @returns {Ast} */
|
|
201
201
|
yASyncMode() {
|
|
202
202
|
this.logger.error('『非同期モード』構文は廃止されました(https://nadesi.com/v3/doc/go.php?1028)。', this.peek());
|
|
203
203
|
const map = this.peekSourceMap();
|
|
@@ -162,7 +162,7 @@ export class NakoParser extends NakoParserBase {
|
|
|
162
162
|
return null
|
|
163
163
|
}
|
|
164
164
|
|
|
165
|
-
/** [廃止] 非同期モード @returns {Ast} */
|
|
165
|
+
/** [廃止] 非同期モード #11 @returns {Ast} */
|
|
166
166
|
yASyncMode (): Ast {
|
|
167
167
|
this.logger.error('『非同期モード』構文は廃止されました(https://nadesi.com/v3/doc/go.php?1028)。', this.peek())
|
|
168
168
|
const map = this.peekSourceMap()
|
|
@@ -137,7 +137,7 @@ export default {
|
|
|
137
137
|
sys.chk = (value, constId) => {
|
|
138
138
|
if (typeof value === 'undefined') {
|
|
139
139
|
const cp = sys.constPools[constId];
|
|
140
|
-
const
|
|
140
|
+
const [msgNo, msgArgs, fileNo, lineNo] = cp;
|
|
141
141
|
let msg = sys.constPoolsTemplate[msgNo];
|
|
142
142
|
for (const i in msgArgs) {
|
|
143
143
|
const arg = sys.constPoolsTemplate[msgArgs[i]];
|
|
@@ -125,7 +125,7 @@ export default {
|
|
|
125
125
|
sys.chk = (value:any, constId: number): any => {
|
|
126
126
|
if (typeof value === 'undefined') {
|
|
127
127
|
const cp = sys.constPools[constId]
|
|
128
|
-
const
|
|
128
|
+
const [ msgNo, msgArgs, fileNo, lineNo ] = cp
|
|
129
129
|
let msg = sys.constPoolsTemplate[msgNo]
|
|
130
130
|
for (const i in msgArgs) {
|
|
131
131
|
const arg = sys.constPoolsTemplate[msgArgs[i]]
|
package/core/test/dncl2_test.mjs
CHANGED
|
@@ -176,18 +176,18 @@ describe('dncl2 (core #41)', async () => {
|
|
|
176
176
|
'\n', '2,1,0')
|
|
177
177
|
})
|
|
178
178
|
it('「情報」サンプル問題-当選数を決めるプログラム2', async () => {
|
|
179
|
-
await cmp(
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
179
|
+
await cmp(`
|
|
180
|
+
!DNCL2
|
|
181
|
+
Tomei = ["A党", "B党", "C党", "D党"]
|
|
182
|
+
Tokuhyo = [1200, 660, 1440, 180]
|
|
183
|
+
sousuu = 0
|
|
184
|
+
giseki = 6
|
|
185
|
+
m を 0 から 3 まで 1 ずつ増やしながら繰り返す:
|
|
186
|
+
⎿ sousuu = sousuu + Tokuhyo[m]
|
|
187
|
+
kizyunsuu = sousuu / giseki
|
|
188
|
+
m を 0 から 3 まで 1 ずつ増やしながら繰り返す:
|
|
189
|
+
⎿ 表示する(Tomei[m], ":", Tokuhyo[m] / kizyunsuu)
|
|
190
|
+
`, 'A党:2.0689655172413794\nB党:1.1379310344827587\nC党:2.4827586206896552\nD党:0.3103448275862069')
|
|
191
191
|
})
|
|
192
192
|
it('「情報」サンプル問題-当選数を決めるプログラム2改', async () => {
|
|
193
193
|
await cmp('' +
|
|
@@ -243,4 +243,32 @@ describe('dncl2 (core #41)', async () => {
|
|
|
243
243
|
'2**3を表示;' +
|
|
244
244
|
'', '8')
|
|
245
245
|
})
|
|
246
|
+
it('関数・・・定義する (core #145)', async () => {
|
|
247
|
+
await cmp(`
|
|
248
|
+
!DNCL2
|
|
249
|
+
関数の点数評価(tensu)を
|
|
250
|
+
もし tensu >=85 ならば:
|
|
251
|
+
表示する("勝って兜の緒を締めよ")
|
|
252
|
+
そうでなく、もし 85 > tensu and tensu >65ならば:
|
|
253
|
+
表示する("ドンマイ:気持ちを切り替えよう。")
|
|
254
|
+
そうでなければ:
|
|
255
|
+
表示する("自分のこれからと真剣に向き合おう")
|
|
256
|
+
と定義する
|
|
257
|
+
tensu = 60
|
|
258
|
+
点数評価(tensu)
|
|
259
|
+
`, '自分のこれからと真剣に向き合おう')
|
|
260
|
+
await cmp(`
|
|
261
|
+
!DNCL2
|
|
262
|
+
関数の点数評価(tensu)を
|
|
263
|
+
もし tensu >=85 ならば:
|
|
264
|
+
表示する("勝って兜の緒を締めよ")
|
|
265
|
+
そうでなく、もし 85 > tensu and tensu >65ならば:
|
|
266
|
+
表示する("ドンマイ:気持ちを切り替えよう。")
|
|
267
|
+
そうでなければ:
|
|
268
|
+
表示する("自分のこれからと真剣に向き合おう")
|
|
269
|
+
と定義する
|
|
270
|
+
tensu = 80
|
|
271
|
+
点数評価(tensu)
|
|
272
|
+
`, 'ドンマイ:気持ちを切り替えよう。')
|
|
273
|
+
})
|
|
246
274
|
})
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nadesiko3",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.3",
|
|
4
4
|
"description": "Japanese Programming Language",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.mjs",
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
"eslint-plugin-react": "^7.25.3",
|
|
121
121
|
"fetch-mock": "^9.11.0",
|
|
122
122
|
"hotkeys-js": "^3.9.4",
|
|
123
|
-
"markdownlint": "^0.
|
|
123
|
+
"markdownlint": "^0.34.0",
|
|
124
124
|
"markdownlint-cli": "^0.38.0",
|
|
125
125
|
"mocha": "^10.2.0",
|
|
126
126
|
"mocha-css": "^1.0.1",
|
package/release/_hash.txt
CHANGED
|
@@ -39,27 +39,27 @@ plugin_turtle.js:
|
|
|
39
39
|
sha256(base64): M10RQpHSqvnWVYyn8HtvcDiFXW3m0qfdRf5p1J/Cpqo=
|
|
40
40
|
sha512(base64): eQGdHJUa8h8N8hu3N4U/7YpdPCeqDH3zw2nAHtnzrFpUtYmIOSclURwNVt9CjtANG6SdzATVIvzY6lBKc7Kagw==
|
|
41
41
|
plugin_webworker.js:
|
|
42
|
-
md5(hex):
|
|
43
|
-
sha256(hex):
|
|
44
|
-
sha256(base64):
|
|
45
|
-
sha512(base64):
|
|
42
|
+
md5(hex): 4567961b2a7eb0133affe3b64cad4c7f
|
|
43
|
+
sha256(hex): ecc869abe5f2466ec22edfd90419d3b475ad0d0e652f4ca731d1c7627c870523
|
|
44
|
+
sha256(base64): 7Mhpq+XyRm7CLt/ZBBnTtHWtDQ5lL0ynMdHHYnyHBSM=
|
|
45
|
+
sha512(base64): YAjXGsckAfwzk7wsfPGAZNzLAHrzZZyeLH910+IcCl5p8v4oSkQJhFTrgKwOxlLJJNf+2cDM+zIXG6glJr7tgA==
|
|
46
46
|
plugin_weykturtle3d.js:
|
|
47
47
|
md5(hex): bbdae69dc29f4d5b7e1804205c5b47cb
|
|
48
48
|
sha256(hex): 14eff384871b3b884d3c31ddf99c4f947220dabe3fddec53ecb358bc6e4bc13b
|
|
49
49
|
sha256(base64): FO/zhIcbO4hNPDHd+ZxPlHIg2r4/3exT7LNYvG5LwTs=
|
|
50
50
|
sha512(base64): TH7Xjq3mkiXW4wy88JLUIASpIN7lYEMlPR62yDlFEJ6vx8oKKv13hoW0Oyx/U0OEjUPZ1vI9zGUHck9UKg+mwQ==
|
|
51
51
|
version.js:
|
|
52
|
-
md5(hex):
|
|
53
|
-
sha256(hex):
|
|
54
|
-
sha256(base64):
|
|
55
|
-
sha512(base64):
|
|
52
|
+
md5(hex): 1ad3dad6f29d9380e50a6017bc214706
|
|
53
|
+
sha256(hex): b4177cd6b44e3bff8efd574aa937015798644ef3f5f7a0f93b60db50fb610183
|
|
54
|
+
sha256(base64): tBd81rROO/+O/VdKqTcBV5hkTvP196D5O2DbUPthAYM=
|
|
55
|
+
sha512(base64): zEXYO/6gk5drFiWSSsfdNXWHfYP/wom6suEGVh7yAW+6TdbCgBi4Ca3KKQJyDojsjkYAfti+QhNhtITYKCsfug==
|
|
56
56
|
wnako3.js:
|
|
57
|
-
md5(hex):
|
|
58
|
-
sha256(hex):
|
|
59
|
-
sha256(base64):
|
|
60
|
-
sha512(base64):
|
|
57
|
+
md5(hex): 87ae1c866586864ba0f10e7ab0a24e4a
|
|
58
|
+
sha256(hex): 29650372d2cf9141239fb2b6f9cc80633af3c601de49b510924d66e787139b20
|
|
59
|
+
sha256(base64): KWUDctLPkUEjn7K2+cyAYzrzxgHeSbUQkk1m54cTmyA=
|
|
60
|
+
sha512(base64): Oq1Cc7f4mTE5knchtGR8U2zygQBSM6xrlW7I77qf0VEzlVVX2q62oizv74IHDpE6ZGmazvIGDXFEm6SuzXAN7A==
|
|
61
61
|
wnako3webworker.js:
|
|
62
|
-
md5(hex):
|
|
63
|
-
sha256(hex):
|
|
64
|
-
sha256(base64):
|
|
65
|
-
sha512(base64):
|
|
62
|
+
md5(hex): 5f20e8bb0358f825c23abb6d2500a59b
|
|
63
|
+
sha256(hex): 867a4875cc61495290aa73e5c0d54d735f5851038f3d27e05f786fff52fc1e41
|
|
64
|
+
sha256(base64): hnpIdcxhSVKQqnPlwNVNc19YUQOPPSfgX3hv/1L8HkE=
|
|
65
|
+
sha512(base64): AkNZuih+1uPWZZYfCYcMneOrvvpufJ9WMXHYwH5NTDpz5r0+14P3F/2rdBmktYchdYS3S8LQmAmfCKK8kQdRzQ==
|
package/release/_script-tags.txt
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.
|
|
2
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.
|
|
3
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.
|
|
4
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.
|
|
5
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.
|
|
6
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.
|
|
7
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.
|
|
8
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.
|
|
9
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.
|
|
10
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.
|
|
11
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.
|
|
12
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.
|
|
13
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.
|
|
1
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/command.json.js" integrity="sha512-VWse4UnLJdqshARVFtdO/78vYUsCuGEJq0eBlQSd1Jl+9oiUhBnfWZKYaiw4azDYiaxm7jSPX0IchvF9GLjUww==" crossorigin="anonymous"></script>
|
|
2
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/editor.js" integrity="sha512-b+YEoSAoQ2Xmdts+75seadjHm5vjw2kEOJxvoWyJz1tGghMG1YOFmHUcCXOqjNIvNv1voOlFajp64xFh7L/+PA==" crossorigin="anonymous"></script>
|
|
3
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/nako_gen_async.js" integrity="sha512-/73lycspxJ921s+NmqaOKF58X9rCsgEZrZT4O4sW1aCe5CSXtQevIasAoGgIoL3a5RmlaghbaIVASwAgmoE3+g==" crossorigin="anonymous"></script>
|
|
4
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/plugin_caniuse.js" integrity="sha512-NH52R7jESOM+p3yqg2n5ngcQEHHVYTYnxVVhC1K+sSIdoif76+36YFuUmIl0Um+/gsR089geaabYpOpqCY0u5Q==" crossorigin="anonymous"></script>
|
|
5
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/plugin_datetime.js" integrity="sha512-aZf1UQqdrf3hekiBvJaOqroF5yCWm18BkLlScbxocfnVR/4+DJoVGQt+ISxFyY20GUHDyvLspWfsc0ObJSUVog==" crossorigin="anonymous"></script>
|
|
6
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/plugin_kansuji.js" integrity="sha512-5/TRx8Ke69YV9s8M67sOWrJmhhHK4MMLbMJh5nKg3oV8spmOOTn6tXl/TxYk8YWkTurOTCaXtRFuR9h2yEDt7w==" crossorigin="anonymous"></script>
|
|
7
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/plugin_markup.js" integrity="sha512-yQJ1nsb6FM58ElnwqPQjSrmzSpqSgJ2kSPlPmoc51oDrzBQJfdYF9gWic9+9BUD33jJtBDddfMg63VBEsyANSw==" crossorigin="anonymous"></script>
|
|
8
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/plugin_turtle.js" integrity="sha512-eQGdHJUa8h8N8hu3N4U/7YpdPCeqDH3zw2nAHtnzrFpUtYmIOSclURwNVt9CjtANG6SdzATVIvzY6lBKc7Kagw==" crossorigin="anonymous"></script>
|
|
9
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/plugin_webworker.js" integrity="sha512-YAjXGsckAfwzk7wsfPGAZNzLAHrzZZyeLH910+IcCl5p8v4oSkQJhFTrgKwOxlLJJNf+2cDM+zIXG6glJr7tgA==" crossorigin="anonymous"></script>
|
|
10
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/plugin_weykturtle3d.js" integrity="sha512-TH7Xjq3mkiXW4wy88JLUIASpIN7lYEMlPR62yDlFEJ6vx8oKKv13hoW0Oyx/U0OEjUPZ1vI9zGUHck9UKg+mwQ==" crossorigin="anonymous"></script>
|
|
11
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/version.js" integrity="sha512-zEXYO/6gk5drFiWSSsfdNXWHfYP/wom6suEGVh7yAW+6TdbCgBi4Ca3KKQJyDojsjkYAfti+QhNhtITYKCsfug==" crossorigin="anonymous"></script>
|
|
12
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/wnako3.js" integrity="sha512-Oq1Cc7f4mTE5knchtGR8U2zygQBSM6xrlW7I77qf0VEzlVVX2q62oizv74IHDpE6ZGmazvIGDXFEm6SuzXAN7A==" crossorigin="anonymous"></script>
|
|
13
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.5.3&f=release/wnako3webworker.js" integrity="sha512-AkNZuih+1uPWZZYfCYcMneOrvvpufJ9WMXHYwH5NTDpz5r0+14P3F/2rdBmktYchdYS3S8LQmAmfCKK8kQdRzQ==" crossorigin="anonymous"></script>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(){"use strict";const e={"初期化":{type:"func",josi:[],pure:!0,fn:function(e){e._webworker={setNakoHandler:function(n){n.onmessage=o=>{const t=o.data||{type:"",data:""},r=t.type||"",s=t.data||"";switch(r){case"output":n.onoutput&&n.onoutput.apply(e,[s,o]);break;case"data":n.ondata&&n.ondata.apply(e,[s,o]);break;case"error":e.logger.error(s.noColor)}},n.onerror=n=>{const o=new Error(void 0!==n.message?n.message:"no message");e.logger.error(o)},n.onerrormessage=n=>{const o=new Error(void 0!==n.message?n.message:"no message");e.logger.error(o)}},inWorker:()=>"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,getBaseUrlFromTag:()=>{if(!self.document)return"";const e="plugin_webworker.js";let n=location.pathname;if("/"!==n.substr(n.length-1,1)){const e=n.split("/");n="/"&e.slice(e.length-1,1).join("/")}const o=document.querySelectorAll("script");for(let t=0;t<o.length;t++){let r=o[t].src||"";const s=r.indexOf(e);if(s>=0&&(r.length-s==19||"?&#".indexOf(r.substr(s+19,1))>=0))return r=r.substring(0,s),"/"===r.substring(0,1)?location.origin+r:/^[a-zA-Z]+:\/\//.test(r)?r:location.origin+n+r}return location.origin+n}},e.__v0["ワーカーURL"]=e._webworker.getBaseUrlFromTag()}},"対象イベント":{type:"const",value:""},"受信データ":{type:"const",value:""},"ワーカーURL":{type:"const",value:""},"ワーカーURL設定":{type:"func",josi:[["に","へ","と"]],pure:!0,fn:function(e,n){e&&"/"!==e.substring(e.length-1)&&(e+="/"),n.__v0["ワーカーURL"]=e},return_none:!0},"ワーカー起動":{type:"func",josi:[["で","を","の"]],pure:!0,fn:function(e,n){return new Worker(e)},return_none:!1},"ワーカーJS起動":{type:"func",josi:[["で","を","の"]],pure:!0,fn:function(e,n){const o=new Blob([e],{type:"application/javascript"}),t=URL.createObjectURL(o);return new Worker(t)},return_none:!1},"NAKOワーカー起動":{type:"func",josi:[["で"]],isVariableJosi:!0,pure:!0,fn:function(e,n){let o;if(void 0===n&&(n=e,e=void 0),void 0!==e){if(!(e instanceof Array))throw new Error("プラグインはファイル名を配列で指定してください");const t=n.__v0["ワーカーURL"];let r=`importScripts('${t}wnako3webworker.js')\n`;const s=e.length;let i;for(i=0;i<s;i++)r+=`importScripts('${t}${e[i]}')\n`;const a=new Blob([r],{type:"application/javascript"});o=URL.createObjectURL(a)}else o=n.__v0["ワーカーURL"]+"wnako3webworker.js";const t=new Worker(o);return t&&n._webworker.setNakoHandler(t),t},return_none:!1},"NAKOワーカーハンドラ設定":{type:"func",josi:[["に","へ","の"]],pure:!0,fn:function(e,n){n._webworker.setNakoHandler(e)},return_none:!0},"NAKOワーカーデータ受信時":{type:"func",josi:[["で"],["から"]],isVariableJosi:!0,pure:!1,fn:function(e,n,o){void 0===o&&(o=n,n=self),e=o.__findVar(e,null),n.ondata=(n,t)=>(o.__v0["受信データ"]=n,o.__v0["対象イベント"]=t,e(t,o))},return_none:!0},"NAKOワーカー表示時":{type:"func",josi:[["で"],["から"]],pure:!1,fn:function(e,n,o){e=o.__findVar(e,null),n.onoutput=(n,t)=>(o.__v0["受信データ"]=n,o.__v0["対象イベント"]=t,e(t,o))},return_none:!0},"ワーカーメッセージ受信時":{type:"func",josi:[["で"],["から"]],isVariableJosi:!0,pure:!1,fn:function(e,n,o){void 0===o&&(o=n,n=self),e=o.__findVar(e,null),n.onmessage=n=>(o.__v0["受信データ"]=n.data,o.__v0["対象イベント"]=n,e(n,o))},return_none:!0},"NAKOワーカープログラム起動":{type:"func",josi:[["に","で"],["を"]],pure:!0,fn:function(e,n,o){const t={type:"run",data:
|
|
1
|
+
!function(){"use strict";const e={"初期化":{type:"func",josi:[],pure:!0,fn:function(e){e._webworker={setNakoHandler:function(n){n.onmessage=o=>{const t=o.data||{type:"",data:""},r=t.type||"",s=t.data||"";switch(r){case"output":n.onoutput&&n.onoutput.apply(e,[s,o]);break;case"data":n.ondata&&n.ondata.apply(e,[s,o]);break;case"error":e.logger.error(s.noColor)}},n.onerror=n=>{const o=new Error(void 0!==n.message?n.message:"no message");e.logger.error(o)},n.onerrormessage=n=>{const o=new Error(void 0!==n.message?n.message:"no message");e.logger.error(o)}},inWorker:()=>"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,getBaseUrlFromTag:()=>{if(!self.document)return"";const e="plugin_webworker.js";let n=location.pathname;if("/"!==n.substr(n.length-1,1)){const e=n.split("/");n="/"&e.slice(e.length-1,1).join("/")}const o=document.querySelectorAll("script");for(let t=0;t<o.length;t++){let r=o[t].src||"";const s=r.indexOf(e);if(s>=0&&(r.length-s==19||"?&#".indexOf(r.substr(s+19,1))>=0))return r=r.substring(0,s),"/"===r.substring(0,1)?location.origin+r:/^[a-zA-Z]+:\/\//.test(r)?r:location.origin+n+r}return location.origin+n}},e.__v0["ワーカーURL"]=e._webworker.getBaseUrlFromTag()}},"対象イベント":{type:"const",value:""},"受信データ":{type:"const",value:""},"ワーカーURL":{type:"const",value:""},"ワーカーURL設定":{type:"func",josi:[["に","へ","と"]],pure:!0,fn:function(e,n){e&&"/"!==e.substring(e.length-1)&&(e+="/"),n.__v0["ワーカーURL"]=e},return_none:!0},"ワーカー起動":{type:"func",josi:[["で","を","の"]],pure:!0,fn:function(e,n){return new Worker(e)},return_none:!1},"ワーカーJS起動":{type:"func",josi:[["で","を","の"]],pure:!0,fn:function(e,n){const o=new Blob([e],{type:"application/javascript"}),t=URL.createObjectURL(o);return new Worker(t)},return_none:!1},"NAKOワーカー起動":{type:"func",josi:[["で"]],isVariableJosi:!0,pure:!0,fn:function(e,n){let o;if(void 0===n&&(n=e,e=void 0),void 0!==e){if(!(e instanceof Array))throw new Error("プラグインはファイル名を配列で指定してください");const t=n.__v0["ワーカーURL"];let r=`importScripts('${t}wnako3webworker.js')\n`;const s=e.length;let i;for(i=0;i<s;i++)r+=`importScripts('${t}${e[i]}')\n`;const a=new Blob([r],{type:"application/javascript"});o=URL.createObjectURL(a)}else o=n.__v0["ワーカーURL"]+"wnako3webworker.js";const t=new Worker(o);return t&&n._webworker.setNakoHandler(t),t},return_none:!1},"NAKOワーカーハンドラ設定":{type:"func",josi:[["に","へ","の"]],pure:!0,fn:function(e,n){n._webworker.setNakoHandler(e)},return_none:!0},"NAKOワーカーデータ受信時":{type:"func",josi:[["で"],["から"]],isVariableJosi:!0,pure:!1,fn:function(e,n,o){void 0===o&&(o=n,n=self),e=o.__findVar(e,null),n.ondata=(n,t)=>(o.__v0["受信データ"]=n,o.__v0["対象イベント"]=t,e(t,o))},return_none:!0},"NAKOワーカー表示時":{type:"func",josi:[["で"],["から"]],pure:!1,fn:function(e,n,o){e=o.__findVar(e,null),n.onoutput=(n,t)=>(o.__v0["受信データ"]=n,o.__v0["対象イベント"]=t,e(t,o))},return_none:!0},"ワーカーメッセージ受信時":{type:"func",josi:[["で"],["から"]],isVariableJosi:!0,pure:!1,fn:function(e,n,o){void 0===o&&(o=n,n=self),e=o.__findVar(e,null),n.onmessage=n=>(o.__v0["受信データ"]=n.data,o.__v0["対象イベント"]=n,e(n,o))},return_none:!0},"NAKOワーカープログラム起動":{type:"func",josi:[["に","で"],["を"]],pure:!0,fn:function(e,n,o){const t={type:"run",data:n};e.postMessage(t)},return_none:!0},"NAKOワーカーリセット":{type:"func",josi:[["を"]],pure:!0,fn:function(e,n){e.postMessage({type:"reset",data:""})},return_none:!0},"ワーカー終了":{type:"func",josi:[["を"]],isVariableJosi:!0,pure:!0,fn:function(e,n){void 0===n&&(n=e,e=self),e.terminate()},return_none:!0},"NAKOワーカー終了":{type:"func",josi:[["を"]],isVariableJosi:!0,pure:!0,fn:function(e,n){if(void 0===n)return void self.close();e.postMessage({type:"close",data:""})},return_none:!0},"NAKOワーカーデータ送信":{type:"func",josi:[["を"],["に","へ"]],isVariableJosi:!0,pure:!0,fn:function(e,n,o){void 0===o&&(o=n,n=self);const t={type:"data",data:e};n.postMessage(t)},return_none:!0},"ワーカーメッセージ送信":{type:"func",josi:[["を"],["に","へ"]],isVariableJosi:!0,pure:!0,fn:function(e,n,o){void 0===o&&(o=n,n=self),n.postMessage(e)},return_none:!0},"NAKOワーカー転送":{type:"func",josi:[["を"],["に","へ"]],isVariableJosi:!0,pure:!1,fn:function(e,n,o){void 0===o&&(o=n,n=self);const t=[],r=[];if("string"==typeof e&&(e=[e]),e.forEach((e=>{if(-1===e.indexOf("__"))for(const n of o.__modList){const t=n+"__"+e;if(void 0!==o.__varslist[2][t]||void 0!==o.__varslist[1][t]){e=t;break}}if(e.indexOf("__")>-1){const n=e.split("__")[0];-1===t.indexOf(n)&&t.push(n)}if(void 0!==o.__varslist[2][e])r.push({type:"val",name:e,content:o.__varslist[2][e]});else{if(void 0===o.__varslist[1][e])throw console.error("指定した名前のユーザ関数もしくはグローバル変数がありません:"+e),new Error("指定した名前のユーザ関数もしくはグローバル変数がありません:"+e);r.push({type:"func",name:e,content:{meta:o.gen.nakoFuncList[e],func:Object.assign({},o.compiler.funclist[e],{fn:null})}})}})),r.length>0){const e=[];for(const n of t)e.push({name:n,export:o.compiler.moduleExport[n]});r.push({type:"env",name:"modlist",content:e}),r.push({type:"env",name:"constPools",content:o.constPools}),r.push({type:"env",name:"constPoolsTemplate",content:o.constPoolsTemplate});const s={type:"trans",data:r};n.postMessage(s)}},return_none:!0}};"object"==typeof navigator&&"object"==typeof navigator.nako3&&navigator.nako3.addPluginObject("PluginWebWorker",e)}();
|
|
2
2
|
//# sourceMappingURL=plugin_webworker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin_webworker.js","mappings":"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","sources":["webpack://nadesiko3/./src/plugin_webworker.mjs"],"sourcesContent":["// @ts-nocheck\nconst PluginWebWorker = {\n '初期化': {\n type: 'func',\n josi: [],\n pure: true,\n fn: function (sys) {\n sys._webworker = {\n setNakoHandler: function (work) {\n work.onmessage = (event) => {\n const data = event.data || { type: '', data: '' }\n const type = data.type || ''\n const value = data.data || ''\n switch (type) {\n case 'output':\n if (work.onoutput) {\n work.onoutput.apply(sys, [value, event])\n }\n break\n case 'data':\n if (work.ondata) {\n work.ondata.apply(sys, [value, event])\n }\n break\n case 'error':\n sys.logger.error(value.noColor)\n break\n }\n }\n work.onerror = (event) => {\n const e = new Error(typeof event.message !== 'undefined' ? event.message : 'no message')\n sys.logger.error(e)\n }\n work.onerrormessage = (event) => {\n const e = new Error(typeof event.message !== 'undefined' ? event.message : 'no message')\n sys.logger.error(e)\n }\n },\n inWorker: () => {\n // eslint-disable-next-line no-undef\n return typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope\n },\n getBaseUrlFromTag: () => {\n if (!self.document) { return '' }\n const pluginName = 'plugin_webworker.js'\n let path = location.pathname\n if (path.substr(path.length - 1, 1) !== '/') {\n const paths = path.split('/')\n path = paths.slice(paths.length - 1, 1).join('/') & '/'\n }\n const scripts = document.querySelectorAll('script')\n for (let i = 0; i < scripts.length; i++) {\n const script = scripts[i]\n let src = script.src || ''\n const index = src.indexOf(pluginName)\n if (index >= 0) {\n if (src.length - index === pluginName.length ||\n '?&#'.indexOf(src.substr(index + pluginName.length, 1)) >= 0) {\n src = src.substring(0, index)\n if (src.substring(0, 1) === '/') {\n // スクリプトソースはorigin無しの絶対パス\n return location.origin + src\n }\n if (/^[a-zA-Z]+:\\/\\//.test(src)) {\n // スクリプトソースは絶対URI\n return src\n }\n // スクリプトソースはorigin無しの相対パス\n return location.origin + path + src\n }\n }\n }\n // スクリプトソースが見つからなかったのでドキュメントのURIを返す\n return location.origin + path\n }\n }\n sys.__v0['ワーカーURL'] = sys._webworker.getBaseUrlFromTag()\n }\n },\n // @イベント定数\n '対象イベント': { type: 'const', value: '' }, // @たいしょういべんと\n '受信データ': { type: 'const', value: '' }, // @たいしょういべんと\n\n 'ワーカーURL': { type: 'const', value: '' }, // @わーかーURL\n 'ワーカーURL設定': { // @なでしこv3のファイルのあるURLを設定 // @わーかーURLせってい\n type: 'func',\n josi: [['に', 'へ', 'と']],\n pure: true,\n fn: function (url, sys) {\n if (url && url.substring(url.length - 1) !== '/') {\n url += '/'\n }\n sys.__v0['ワーカーURL'] = url\n },\n return_none: true\n },\n\n // @NAKOワーカー\n 'ワーカー起動': { // @指定したURLでWebWorkerを起動する。ワーカオブジェクトを返す。 // @わーかーきどう\n type: 'func',\n josi: [['で', 'を', 'の']],\n pure: true,\n fn: function (url, sys) {\n return new Worker(url)\n },\n return_none: false\n },\n 'ワーカーJS起動': { // @指定したJavascriptのソースでWebWorkerを起動する。ワーカオブジェクトを返す。 // @わーかーJSきどう\n type: 'func',\n josi: [['で', 'を', 'の']],\n pure: true,\n fn: function (src, sys) {\n const blob = new Blob([src], { type: 'application/javascript' })\n const url = URL.createObjectURL(blob)\n return new Worker(url)\n },\n return_none: false\n },\n 'NAKOワーカー起動': { // @指定したなでしこ3のWebWorkerを起動する。ワーカオブジェクトを返す。 // @NAKOわーかーきどう\n type: 'func',\n josi: [['で']],\n isVariableJosi: true,\n pure: true,\n fn: function (plugins, sys) {\n let url\n if (typeof sys === 'undefined') { sys = plugins; plugins = undefined }\n if (plugins !== undefined) {\n if (!(plugins instanceof Array)) {\n throw new Error('プラグインはファイル名を配列で指定してください')\n }\n const baseurl = sys.__v0['ワーカーURL']\n let code = `importScripts('${baseurl}wnako3webworker.js')\\n`\n const l = plugins.length\n let i\n for (i = 0; i < l; i++) {\n code += `importScripts('${baseurl}${plugins[i]}')\\n`\n }\n const blob = new Blob([code], { type: 'application/javascript' })\n url = URL.createObjectURL(blob)\n } else {\n url = sys.__v0['ワーカーURL'] + 'wnako3webworker.js'\n }\n const myWorker = new Worker(url)\n if (myWorker) {\n sys._webworker.setNakoHandler(myWorker)\n }\n return myWorker\n },\n return_none: false\n },\n 'NAKOワーカーハンドラ設定': { // @ワーカーにNAKOワーカーのための設定を行う。 // @NAKOわーかーはんどらせってい\n type: 'func',\n josi: [['に', 'へ', 'の']],\n pure: true,\n fn: function (work, sys) {\n sys._webworker.setNakoHandler(work)\n },\n return_none: true\n },\n 'NAKOワーカーデータ受信時': { // @無名関数Fでなでしこv3エンジンに対してワーカーメッセージによりデータを受信した時に実行するイベントを設定。『受信データ』に受信したデータ。『対象イベント』にイベント引数。 // @NAKOわーかーでーたじゅしんしたとき\n type: 'func',\n josi: [['で'], ['から']],\n isVariableJosi: true,\n pure: false,\n fn: function (func, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n func = sys.__findVar(func, null) // 文字列指定なら関数に変換\n work.ondata = (data, e) => {\n sys.__v0['受信データ'] = data\n sys.__v0['対象イベント'] = e\n return func(e, sys)\n }\n },\n return_none: true\n },\n 'NAKOワーカー表示時': { // @無名関数Fでなでしこv3エンジンに対してワーカーメッセージにより表示データを受信した時に実行するイベントを設定。『受信データ』に表示しようとしたデータ。『対象イベント』にイベント引数。 // @NAKOわーかーひょうじしたとき\n type: 'func',\n josi: [['で'], ['から']],\n pure: false,\n fn: function (func, work, sys) {\n func = sys.__findVar(func, null) // 文字列指定なら関数に変換\n work.onoutput = (data, e) => {\n sys.__v0['受信データ'] = data\n sys.__v0['対象イベント'] = e\n return func(e, sys)\n }\n },\n return_none: true\n },\n 'ワーカーメッセージ受信時': { // @無名関数Fでworkに対してメッセージを受信した時に実行するイベントを設定。『受信データ』に受信したデータ。『対象イベント』にイベント引数。 // @わーかーめっせーじじゅしんしたとき\n type: 'func',\n josi: [['で'], ['から']],\n isVariableJosi: true,\n pure: false,\n fn: function (func, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n func = sys.__findVar(func, null) // 文字列指定なら関数に変換\n work.onmessage = (e) => {\n sys.__v0['受信データ'] = e.data\n sys.__v0['対象イベント'] = e\n return func(e, sys)\n }\n },\n return_none: true\n },\n 'NAKOワーカープログラム起動': { // @WORKERに固有の形式でプログラムの転送と実行行う。 // @NAKOわーかーぷろぐらむきどう\n type: 'func',\n josi: [['に', 'で'], ['を']],\n pure: true,\n fn: function (work, data, sys) {\n const msg = {\n type: 'run',\n data: sys.__modName + '__' + data\n }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'NAKOワーカーリセット': { // @WORKERに固有の形式でプログラムの転送と実行行う。 // @わーかーりせっと\n type: 'func',\n josi: [['を']],\n pure: true,\n fn: function (work, sys) {\n const msg = {\n type: 'reset',\n data: ''\n }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'ワーカー終了': { // @WORKERを終了する。 // @わーかーしゅうりょう\n type: 'func',\n josi: [['を']],\n isVariableJosi: true,\n pure: true,\n fn: function (work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n work.terminate()\n },\n return_none: true\n },\n 'NAKOワーカー終了': { // @WORKERを終了する。 // @NAKOわーかーしゅうりょう\n type: 'func',\n josi: [['を']],\n isVariableJosi: true,\n pure: true,\n fn: function (work, sys) {\n if (typeof sys === 'undefined') {\n self.close()\n return\n }\n const msg = {\n type: 'close',\n data: ''\n }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'NAKOワーカーデータ送信': { // @WORKERに固有の形式でデータを送信する。 // @NAKOわーかーでーたそうしん\n type: 'func',\n josi: [['を'], ['に', 'へ']],\n isVariableJosi: true,\n pure: true,\n fn: function (data, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n const msg = {\n type: 'data',\n data: data\n }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'ワーカーメッセージ送信': { // @WORKERにメッセージを送信する。 // @わーかーめっせーじそうしん\n type: 'func',\n josi: [['を'], ['に', 'へ']],\n isVariableJosi: true,\n pure: true,\n fn: function (msg, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'NAKOワーカー転送': { // @WORKERにユーザー定義関数またはユーザ定義のグローバル変数を転送する。 // @NAKOわーかーてんそう\n type: 'func',\n josi: [['を'], ['に', 'へ']],\n isVariableJosi: true,\n pure: false,\n fn: function (datas, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n const obj = []\n if (typeof datas === 'string') { datas = [datas] }\n datas.forEach(data => {\n data = sys.__modName + '__' + data\n if (typeof sys.__varslist[2][data] !== 'undefined') {\n obj.push({\n type: 'val',\n name: data,\n content: sys.__varslist[2][data]\n })\n } else\n if (typeof sys.__varslist[1][data] !== 'undefined') {\n obj.push({\n type: 'func',\n name: data,\n content: {\n meta: sys.gen.nakoFuncList[data],\n func: Object.assign({}, sys.compiler.funclist[data], { fn: null })\n }\n })\n } else {\n console.error('指定した名前のユーザ関数もしくはグローバル変数がありません:' + data)\n throw new Error('指定した名前のユーザ関数もしくはグローバル変数がありません:' + data)\n }\n })\n if (obj.length > 0) {\n const msg = {\n type: 'trans',\n data: obj\n }\n work.postMessage(msg)\n }\n },\n return_none: true\n }\n}\n\nexport default PluginWebWorker\n\nif (typeof (navigator) === 'object' && typeof (navigator.nako3) === 'object') {\n navigator.nako3.addPluginObject('PluginWebWorker', PluginWebWorker)\n}\n\n"],"names":["PluginWebWorker","type","josi","pure","fn","sys","_webworker","setNakoHandler","work","onmessage","event","data","value","onoutput","apply","ondata","logger","error","noColor","onerror","e","Error","message","onerrormessage","inWorker","WorkerGlobalScope","self","getBaseUrlFromTag","document","pluginName","path","location","pathname","substr","length","paths","split","slice","join","scripts","querySelectorAll","i","src","index","indexOf","substring","origin","test","__v0","url","return_none","Worker","blob","Blob","URL","createObjectURL","isVariableJosi","plugins","undefined","Array","baseurl","code","l","myWorker","func","__findVar","msg","__modName","postMessage","terminate","close","datas","obj","forEach","__varslist","push","name","content","console","meta","gen","nakoFuncList","Object","assign","compiler","funclist","navigator","nako3","addPluginObject"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"plugin_webworker.js","mappings":"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","sources":["webpack://nadesiko3/./src/plugin_webworker.mjs"],"sourcesContent":["// @ts-nocheck\nconst PluginWebWorker = {\n '初期化': {\n type: 'func',\n josi: [],\n pure: true,\n fn: function (sys) {\n sys._webworker = {\n setNakoHandler: function (work) {\n work.onmessage = (event) => {\n const data = event.data || { type: '', data: '' }\n const type = data.type || ''\n const value = data.data || ''\n switch (type) {\n case 'output':\n if (work.onoutput) {\n work.onoutput.apply(sys, [value, event])\n }\n break\n case 'data':\n if (work.ondata) {\n work.ondata.apply(sys, [value, event])\n }\n break\n case 'error':\n sys.logger.error(value.noColor)\n break\n }\n }\n work.onerror = (event) => {\n const e = new Error(typeof event.message !== 'undefined' ? event.message : 'no message')\n sys.logger.error(e)\n }\n work.onerrormessage = (event) => {\n const e = new Error(typeof event.message !== 'undefined' ? event.message : 'no message')\n sys.logger.error(e)\n }\n },\n inWorker: () => {\n // eslint-disable-next-line no-undef\n return typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope\n },\n getBaseUrlFromTag: () => {\n if (!self.document) { return '' }\n const pluginName = 'plugin_webworker.js'\n let path = location.pathname\n if (path.substr(path.length - 1, 1) !== '/') {\n const paths = path.split('/')\n path = paths.slice(paths.length - 1, 1).join('/') & '/'\n }\n const scripts = document.querySelectorAll('script')\n for (let i = 0; i < scripts.length; i++) {\n const script = scripts[i]\n let src = script.src || ''\n const index = src.indexOf(pluginName)\n if (index >= 0) {\n if (src.length - index === pluginName.length ||\n '?&#'.indexOf(src.substr(index + pluginName.length, 1)) >= 0) {\n src = src.substring(0, index)\n if (src.substring(0, 1) === '/') {\n // スクリプトソースはorigin無しの絶対パス\n return location.origin + src\n }\n if (/^[a-zA-Z]+:\\/\\//.test(src)) {\n // スクリプトソースは絶対URI\n return src\n }\n // スクリプトソースはorigin無しの相対パス\n return location.origin + path + src\n }\n }\n }\n // スクリプトソースが見つからなかったのでドキュメントのURIを返す\n return location.origin + path\n }\n }\n sys.__v0['ワーカーURL'] = sys._webworker.getBaseUrlFromTag()\n }\n },\n // @イベント定数\n '対象イベント': { type: 'const', value: '' }, // @たいしょういべんと\n '受信データ': { type: 'const', value: '' }, // @たいしょういべんと\n\n 'ワーカーURL': { type: 'const', value: '' }, // @わーかーURL\n 'ワーカーURL設定': { // @なでしこv3のファイルのあるURLを設定 // @わーかーURLせってい\n type: 'func',\n josi: [['に', 'へ', 'と']],\n pure: true,\n fn: function (url, sys) {\n if (url && url.substring(url.length - 1) !== '/') {\n url += '/'\n }\n sys.__v0['ワーカーURL'] = url\n },\n return_none: true\n },\n\n // @NAKOワーカー\n 'ワーカー起動': { // @指定したURLでWebWorkerを起動する。ワーカオブジェクトを返す。 // @わーかーきどう\n type: 'func',\n josi: [['で', 'を', 'の']],\n pure: true,\n fn: function (url, sys) {\n return new Worker(url)\n },\n return_none: false\n },\n 'ワーカーJS起動': { // @指定したJavascriptのソースでWebWorkerを起動する。ワーカオブジェクトを返す。 // @わーかーJSきどう\n type: 'func',\n josi: [['で', 'を', 'の']],\n pure: true,\n fn: function (src, sys) {\n const blob = new Blob([src], { type: 'application/javascript' })\n const url = URL.createObjectURL(blob)\n return new Worker(url)\n },\n return_none: false\n },\n 'NAKOワーカー起動': { // @指定したなでしこ3のWebWorkerを起動する。ワーカオブジェクトを返す。 // @NAKOわーかーきどう\n type: 'func',\n josi: [['で']],\n isVariableJosi: true,\n pure: true,\n fn: function (plugins, sys) {\n let url\n if (typeof sys === 'undefined') { sys = plugins; plugins = undefined }\n if (plugins !== undefined) {\n if (!(plugins instanceof Array)) {\n throw new Error('プラグインはファイル名を配列で指定してください')\n }\n const baseurl = sys.__v0['ワーカーURL']\n let code = `importScripts('${baseurl}wnako3webworker.js')\\n`\n const l = plugins.length\n let i\n for (i = 0; i < l; i++) {\n code += `importScripts('${baseurl}${plugins[i]}')\\n`\n }\n const blob = new Blob([code], { type: 'application/javascript' })\n url = URL.createObjectURL(blob)\n } else {\n url = sys.__v0['ワーカーURL'] + 'wnako3webworker.js'\n }\n const myWorker = new Worker(url)\n if (myWorker) {\n sys._webworker.setNakoHandler(myWorker)\n }\n return myWorker\n },\n return_none: false\n },\n 'NAKOワーカーハンドラ設定': { // @ワーカーにNAKOワーカーのための設定を行う。 // @NAKOわーかーはんどらせってい\n type: 'func',\n josi: [['に', 'へ', 'の']],\n pure: true,\n fn: function (work, sys) {\n sys._webworker.setNakoHandler(work)\n },\n return_none: true\n },\n 'NAKOワーカーデータ受信時': { // @無名関数Fでなでしこv3エンジンに対してワーカーメッセージによりデータを受信した時に実行するイベントを設定。『受信データ』に受信したデータ。『対象イベント』にイベント引数。 // @NAKOわーかーでーたじゅしんしたとき\n type: 'func',\n josi: [['で'], ['から']],\n isVariableJosi: true,\n pure: false,\n fn: function (func, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n func = sys.__findVar(func, null) // 文字列指定なら関数に変換\n work.ondata = (data, e) => {\n sys.__v0['受信データ'] = data\n sys.__v0['対象イベント'] = e\n return func(e, sys)\n }\n },\n return_none: true\n },\n 'NAKOワーカー表示時': { // @無名関数Fでなでしこv3エンジンに対してワーカーメッセージにより表示データを受信した時に実行するイベントを設定。『受信データ』に表示しようとしたデータ。『対象イベント』にイベント引数。 // @NAKOわーかーひょうじしたとき\n type: 'func',\n josi: [['で'], ['から']],\n pure: false,\n fn: function (func, work, sys) {\n func = sys.__findVar(func, null) // 文字列指定なら関数に変換\n work.onoutput = (data, e) => {\n sys.__v0['受信データ'] = data\n sys.__v0['対象イベント'] = e\n return func(e, sys)\n }\n },\n return_none: true\n },\n 'ワーカーメッセージ受信時': { // @無名関数Fでworkに対してメッセージを受信した時に実行するイベントを設定。『受信データ』に受信したデータ。『対象イベント』にイベント引数。 // @わーかーめっせーじじゅしんしたとき\n type: 'func',\n josi: [['で'], ['から']],\n isVariableJosi: true,\n pure: false,\n fn: function (func, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n func = sys.__findVar(func, null) // 文字列指定なら関数に変換\n work.onmessage = (e) => {\n sys.__v0['受信データ'] = e.data\n sys.__v0['対象イベント'] = e\n return func(e, sys)\n }\n },\n return_none: true\n },\n 'NAKOワーカープログラム起動': { // @WORKERに固有の形式でプログラムの転送と実行行う。 // @NAKOわーかーぷろぐらむきどう\n type: 'func',\n josi: [['に', 'で'], ['を']],\n pure: true,\n fn: function (work, data, sys) {\n const msg = {\n type: 'run',\n data: data\n }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'NAKOワーカーリセット': { // @WORKERに固有の形式でプログラムの転送と実行行う。 // @わーかーりせっと\n type: 'func',\n josi: [['を']],\n pure: true,\n fn: function (work, sys) {\n const msg = {\n type: 'reset',\n data: ''\n }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'ワーカー終了': { // @WORKERを終了する。 // @わーかーしゅうりょう\n type: 'func',\n josi: [['を']],\n isVariableJosi: true,\n pure: true,\n fn: function (work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n work.terminate()\n },\n return_none: true\n },\n 'NAKOワーカー終了': { // @WORKERを終了する。 // @NAKOわーかーしゅうりょう\n type: 'func',\n josi: [['を']],\n isVariableJosi: true,\n pure: true,\n fn: function (work, sys) {\n if (typeof sys === 'undefined') {\n self.close()\n return\n }\n const msg = {\n type: 'close',\n data: ''\n }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'NAKOワーカーデータ送信': { // @WORKERに固有の形式でデータを送信する。 // @NAKOわーかーでーたそうしん\n type: 'func',\n josi: [['を'], ['に', 'へ']],\n isVariableJosi: true,\n pure: true,\n fn: function (data, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n const msg = {\n type: 'data',\n data: data\n }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'ワーカーメッセージ送信': { // @WORKERにメッセージを送信する。 // @わーかーめっせーじそうしん\n type: 'func',\n josi: [['を'], ['に', 'へ']],\n isVariableJosi: true,\n pure: true,\n fn: function (msg, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n work.postMessage(msg)\n },\n return_none: true\n },\n 'NAKOワーカー転送': { // @WORKERにユーザー定義関数またはユーザ定義のグローバル変数を転送する。 // @NAKOわーかーてんそう\n type: 'func',\n josi: [['を'], ['に', 'へ']],\n isVariableJosi: true,\n pure: false,\n fn: function (datas, work, sys) {\n if (typeof sys === 'undefined') { sys = work; work = self }\n const modNameList = []\n const obj = []\n if (typeof datas === 'string') { datas = [datas] }\n datas.forEach(data => {\n if (data.indexOf('__') === -1) {\n for (const modname of sys.__modList) {\n const varname = modname + '__' + data\n if (typeof sys.__varslist[2][varname] !== 'undefined' || typeof sys.__varslist[1][varname] !== 'undefined') {\n data = varname\n break\n }\n }\n }\n if (data.indexOf('__') > -1) {\n const modname = data.split('__')[0]\n if (modNameList.indexOf(modname) === -1) {\n modNameList.push(modname)\n }\n }\n if (typeof sys.__varslist[2][data] !== 'undefined') {\n obj.push({\n type: 'val',\n name: data,\n content: sys.__varslist[2][data]\n })\n } else\n if (typeof sys.__varslist[1][data] !== 'undefined') {\n obj.push({\n type: 'func',\n name: data,\n content: {\n meta: sys.gen.nakoFuncList[data],\n func: Object.assign({}, sys.compiler.funclist[data], { fn: null })\n }\n })\n } else {\n console.error('指定した名前のユーザ関数もしくはグローバル変数がありません:' + data)\n throw new Error('指定した名前のユーザ関数もしくはグローバル変数がありません:' + data)\n }\n })\n if (obj.length > 0) {\n const modInfoList = []\n for (const modname of modNameList) {\n modInfoList.push({\n name: modname,\n export: sys.compiler.moduleExport[modname]\n })\n }\n obj.push({\n type: 'env',\n name: 'modlist',\n content: modInfoList\n })\n obj.push({\n type: 'env',\n name: 'constPools',\n content: sys.constPools\n })\n obj.push({\n type: 'env',\n name: 'constPoolsTemplate',\n content: sys.constPoolsTemplate\n })\n const msg = {\n type: 'trans',\n data: obj\n }\n work.postMessage(msg)\n }\n },\n return_none: true\n }\n}\n\nexport default PluginWebWorker\n\nif (typeof (navigator) === 'object' && typeof (navigator.nako3) === 'object') {\n navigator.nako3.addPluginObject('PluginWebWorker', PluginWebWorker)\n}\n\n"],"names":["PluginWebWorker","type","josi","pure","fn","sys","_webworker","setNakoHandler","work","onmessage","event","data","value","onoutput","apply","ondata","logger","error","noColor","onerror","e","Error","message","onerrormessage","inWorker","WorkerGlobalScope","self","getBaseUrlFromTag","document","pluginName","path","location","pathname","substr","length","paths","split","slice","join","scripts","querySelectorAll","i","src","index","indexOf","substring","origin","test","__v0","url","return_none","Worker","blob","Blob","URL","createObjectURL","isVariableJosi","plugins","undefined","Array","baseurl","code","l","myWorker","func","__findVar","msg","postMessage","terminate","close","datas","modNameList","obj","forEach","modname","__modList","varname","__varslist","push","name","content","console","meta","gen","nakoFuncList","Object","assign","compiler","funclist","modInfoList","export","moduleExport","constPools","constPoolsTemplate","navigator","nako3","addPluginObject"],"sourceRoot":""}
|