nadesiko3 3.5.1 → 3.5.2

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 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nadesiko3core",
3
- "version": "3.5.0",
3
+ "version": "3.5.2",
4
4
  "description": "Japanese Programming Language Nadesiko v3 core",
5
5
  "main": "index.mjs",
6
6
  "type": "module",
@@ -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
  /**
@@ -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 { msgNo, msgArgs, fileNo, lineNo } = cp;
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 { msgNo, msgArgs, fileNo, lineNo } = cp
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]]
@@ -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
- '!DNCL2\n' +
181
- 'Tomei = ["A党", "B党", "C党", "D党"]\n' +
182
- 'Tokuhyo = [1200, 660, 1440, 180]\n' +
183
- 'sousuu = 0\n' +
184
- 'giseki = 6\n' +
185
- 'm を 0 から 3 まで 1 ずつ増やしながら繰り返す:\n' +
186
- '⎿ sousuu = sousuu + Tokuhyo[m]\n' +
187
- 'kizyunsuu = sousuu / giseki\n' +
188
- 'm を 0 から 3 まで 1 ずつ増やしながら繰り返す:\n' +
189
- '⎿ 表示する(Tomei[m], ":", Tokuhyo[m] / kizyunsuu)\n' +
190
- '\n', 'A党:2.0689655172413794\nB党:1.1379310344827587\nC党:2.4827586206896552\nD党:0.3103448275862069')
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.1",
3
+ "version": "3.5.2",
4
4
  "description": "Japanese Programming Language",
5
5
  "type": "module",
6
6
  "main": "src/index.mjs",
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): 4091c25bd82bd854a82536c8739b668a
43
- sha256(hex): 6e53c41e9ee9d67ddede5c0232153f7ac725b0f8132b398c4131b2128aedee97
44
- sha256(base64): blPEHp7p1n3e3lwCMhU/esclsPgTKzmMQTGyEort7pc=
45
- sha512(base64): 3H0ofY7G3KGEahnY5JzdBAeNnzfMmww4RdXembOOAhq3x7GWsz3p4574hP+tx6VrpBngGaWUuOyDimfMvjAldQ==
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): 8e3f2a130e70d124adb8cbd2c53b2f95
53
- sha256(hex): a1b6f02b77dd18567756d6f4ef53f632dd5301bb426a9260cca3aa88a2592178
54
- sha256(base64): obbwK3fdGFZ3Vtb071P2Mt1TAbtCapJgzKOqiKJZIXg=
55
- sha512(base64): Dlc/iJbpHo9rlb+S9KvjcwjtLOLRio8USOtIG952pTSTpB4jrhpn53e9IFSo9xwhduxkxIu9fq9aWc8zmkstWg==
52
+ md5(hex): 1f69b47581c0648c455efe35ea90ddb3
53
+ sha256(hex): b424da40c6c6890c7e7f27319ebf463853e3157ed05331a157859296502e902c
54
+ sha256(base64): tCTaQMbGiQx+fycxnr9GOFPjFX7QUzGhV4WSllAukCw=
55
+ sha512(base64): hqKznHhVlDVpQ9oIyHG7pRh/YbI2T9XSmA3mAMdSYuxbAy5Izxd/dDwg8vga16UzJGX0gpy4pTPOVTrehdXR6w==
56
56
  wnako3.js:
57
- md5(hex): f5d739437afb408bc05ef435763599c3
58
- sha256(hex): 323ee6dcda52896deaf903f36aab8c62d378e2a2082203852d112cd054323a71
59
- sha256(base64): Mj7m3NpSiW3q+QPzaquMYtN44qIIIgOFLREs0FQyOnE=
60
- sha512(base64): 34+UGE/8OF5PaD96vjdlqN9oYD7Oe+/DGuLHV+6wYT27/IzDVawSGUegdd4k3d7BX2WqVU5yXVFnIiOb3Jf2gw==
57
+ md5(hex): 18436e6de8fb1b61e60553e40c99d2ed
58
+ sha256(hex): c89bf36b91cb52eaacb2e4fd242e1d91ad81fcfd1765173da93282d9b938a5fd
59
+ sha256(base64): yJvza5HLUuqssuT9JC4dka2B/P0XZRc9qTKC2bk4pf0=
60
+ sha512(base64): nXXnt+egLUGndsyUQKk17C7H5EGRuSI+xdY21LiFWT5NMGOCKRG1N+cW0Z6bros7L+JjqorrSdzcv77XqrOeRg==
61
61
  wnako3webworker.js:
62
- md5(hex): 86e1a4d4b5ee089fc92c42dca9ae7741
63
- sha256(hex): 53ea302655f2ed59e4bd7ddede501177bc55da232faa8f6b6459e461e02c7c62
64
- sha256(base64): U+owJlXy7VnkvX3e3lARd7xV2iMvqo9rZFnkYeAsfGI=
65
- sha512(base64): YWk1OH+3SQ2BvG7EpZFy+8io3tVUQ/m+4pav8VYK8ChZVltP9ppInLp3csQ69hty/fOgt0dR6mMQDMtMOR3G/g==
62
+ md5(hex): b9ec1bc60a51a952c945d35c43943db8
63
+ sha256(hex): a26f09b9c6e9da7a6a9cefd394f2d19b93553f244fcc60d2a687ca984fc24669
64
+ sha256(base64): om8Jucbp2npqnO/TlPLRm5NVPyRPzGDSpofKmE/CRmk=
65
+ sha512(base64): ZyL+Ur63jv+8tN2us7S2Zv3yfsHK0+o0aCX6GVXkTZSoqZPxU2Ynz299JC4EWMQlLXmYyvLlRQjdScmQkvD3VQ==
@@ -1,13 +1,13 @@
1
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.1&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.1&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.1&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.1&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.1&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.1&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.1&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.1&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.1&f=release/plugin_webworker.js" integrity="sha512-3H0ofY7G3KGEahnY5JzdBAeNnzfMmww4RdXembOOAhq3x7GWsz3p4574hP+tx6VrpBngGaWUuOyDimfMvjAldQ==" crossorigin="anonymous"></script>
10
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.1&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.1&f=release/version.js" integrity="sha512-Dlc/iJbpHo9rlb+S9KvjcwjtLOLRio8USOtIG952pTSTpB4jrhpn53e9IFSo9xwhduxkxIu9fq9aWc8zmkstWg==" crossorigin="anonymous"></script>
12
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.1&f=release/wnako3.js" integrity="sha512-34+UGE/8OF5PaD96vjdlqN9oYD7Oe+/DGuLHV+6wYT27/IzDVawSGUegdd4k3d7BX2WqVU5yXVFnIiOb3Jf2gw==" crossorigin="anonymous"></script>
13
- <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.1&f=release/wnako3webworker.js" integrity="sha512-YWk1OH+3SQ2BvG7EpZFy+8io3tVUQ/m+4pav8VYK8ChZVltP9ppInLp3csQ69hty/fOgt0dR6mMQDMtMOR3G/g==" crossorigin="anonymous"></script>
1
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.2&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.2&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.2&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.2&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.2&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.2&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.2&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.2&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.2&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.2&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.2&f=release/version.js" integrity="sha512-hqKznHhVlDVpQ9oIyHG7pRh/YbI2T9XSmA3mAMdSYuxbAy5Izxd/dDwg8vga16UzJGX0gpy4pTPOVTrehdXR6w==" crossorigin="anonymous"></script>
12
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.2&f=release/wnako3.js" integrity="sha512-nXXnt+egLUGndsyUQKk17C7H5EGRuSI+xdY21LiFWT5NMGOCKRG1N+cW0Z6bros7L+JjqorrSdzcv77XqrOeRg==" crossorigin="anonymous"></script>
13
+ <script defer src="https://nadesi.com/v3/cdn.php?v=3.5.2&f=release/wnako3webworker.js" integrity="sha512-ZyL+Ur63jv+8tN2us7S2Zv3yfsHK0+o0aCX6GVXkTZSoqZPxU2Ynz299JC4EWMQlLXmYyvLlRQjdScmQkvD3VQ==" 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:o.__modName+"__"+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=[];if("string"==typeof e&&(e=[e]),e.forEach((e=>{if(e=o.__modName+"__"+e,void 0!==o.__varslist[2][e])t.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);t.push({type:"func",name:e,content:{meta:o.gen.nakoFuncList[e],func:Object.assign({},o.compiler.funclist[e],{fn:null})}})}})),t.length>0){const e={type:"trans",data:t};n.postMessage(e)}},return_none:!0}};"object"==typeof navigator&&"object"==typeof navigator.nako3&&navigator.nako3.addPluginObject("PluginWebWorker",e)}();
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":""}