nadesiko3 3.6.3 → 3.6.5
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/batch/command.txt +25 -25
- package/core/deno/README.md +16 -0
- package/core/package.json +1 -1
- package/core/src/nako_gen.mjs +15 -4
- package/core/src/nako_gen.mts +15 -4
- package/core/test/func_call.mjs +15 -0
- package/package.json +1 -1
- package/release/_hash.txt +28 -28
- package/release/_script-tags.txt +15 -15
- package/release/plugin_caniuse.js +1 -1
- package/release/plugin_caniuse.js.map +1 -1
- package/release/plugin_kansuji.js +1 -1
- package/release/plugin_kansuji.js.map +1 -1
- package/release/plugin_turtle.js +1 -1
- package/release/plugin_turtle.js.map +1 -1
- 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_caniuse.mjs +10 -0
- package/src/plugin_kansuji.mjs +10 -0
- package/src/plugin_turtle.mjs +97 -100
- package/src/plugin_turtle.mts +116 -105
- package/src/plugin_webworker.mjs +11 -0
- package/tools/nako3edit/html/files.html +28 -6
- package/tools/nako3edit/html/nako3edit.css +30 -2
- package/tools/nako3edit/index.mjs +36 -0
- package/tools/nako3edit/a.sqlite3 +0 -0
package/batch/command.txt
CHANGED
|
@@ -638,9 +638,9 @@
|
|
|
638
638
|
|
|
639
639
|
■plugin_turtle(基本プラグイン,wnako)
|
|
640
640
|
●タートルグラフィックス・カメ描画
|
|
641
|
-
| 変数 | カメ描画先 | | '#turtle_cv' | かめびょうがさき | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_turtle.mjs#
|
|
642
|
-
| 変数 | カメ画像URL | | turtleImage | かめがぞうURL | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_turtle.mjs#
|
|
643
|
-
| 定数 | カメ速度 | | 100 | かめそくど | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_turtle.mjs#
|
|
641
|
+
| 変数 | カメ描画先 | | '#turtle_cv' | かめびょうがさき | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_turtle.mjs#L431
|
|
642
|
+
| 変数 | カメ画像URL | | turtleImage | かめがぞうURL | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_turtle.mjs#L432
|
|
643
|
+
| 定数 | カメ速度 | | 100 | かめそくど | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_turtle.mjs#L443
|
|
644
644
|
|
|
645
645
|
|
|
646
646
|
■plugin_node(基本プラグイン,cnako,phpnako)
|
|
@@ -802,14 +802,14 @@
|
|
|
802
802
|
|
|
803
803
|
■plugin_caniuse(基本プラグイン,wnako,cnako)
|
|
804
804
|
●ブラウザサポート
|
|
805
|
-
| 定数 | ブラウザ名変換表 | | agents | ぶらうざめいへんかんひょう | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_caniuse.mjs#
|
|
806
|
-
| 関数 | 対応ブラウザ一覧取得 | | 対応しているブラウザの一覧を取得する | たいおうぶらうざいちらんしゅとく | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_caniuse.mjs#
|
|
805
|
+
| 定数 | ブラウザ名変換表 | | agents | ぶらうざめいへんかんひょう | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_caniuse.mjs#L27
|
|
806
|
+
| 関数 | 対応ブラウザ一覧取得 | | 対応しているブラウザの一覧を取得する | たいおうぶらうざいちらんしゅとく | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_caniuse.mjs#L31
|
|
807
807
|
|
|
808
808
|
|
|
809
809
|
■plugin_kansuji(基本プラグイン,wnako,cnako)
|
|
810
810
|
●漢数字関連
|
|
811
|
-
| 関数 | 漢数字 | INPUTを/INPUTの | 引数を数字と解釈して漢数字の文字列を返す | かんすうじ | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_kansuji.mjs#
|
|
812
|
-
| 関数 | 算用数字 | INPUTを/INPUTの | U引数を漢数字と解釈して数値を返す | さんようすうじ | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_kansuji.mjs#
|
|
811
|
+
| 関数 | 漢数字 | INPUTを/INPUTの | 引数を数字と解釈して漢数字の文字列を返す | かんすうじ | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_kansuji.mjs#L27
|
|
812
|
+
| 関数 | 算用数字 | INPUTを/INPUTの | U引数を漢数字と解釈して数値を返す | さんようすうじ | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_kansuji.mjs#L136
|
|
813
813
|
|
|
814
814
|
|
|
815
815
|
■plugin_weykturtle3d(基本プラグイン,wnako)
|
|
@@ -865,25 +865,25 @@
|
|
|
865
865
|
|
|
866
866
|
■plugin_webworker(基本プラグイン,wnako)
|
|
867
867
|
●イベント定数
|
|
868
|
-
| 定数 | 対象イベント | | '' | たいしょういべんと | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
869
|
-
| 定数 | 受信データ | | '' | たいしょういべんと | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
870
|
-
| 定数 | ワーカーURL | | '' | わーかーURL | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
871
|
-
| 関数 | ワーカーURL設定 | URLに/URLへ/URLと | なでしこv3のファイルのあるURLを設定 | わーかーURLせってい | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
868
|
+
| 定数 | 対象イベント | | '' | たいしょういべんと | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L92
|
|
869
|
+
| 定数 | 受信データ | | '' | たいしょういべんと | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L93
|
|
870
|
+
| 定数 | ワーカーURL | | '' | わーかーURL | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L95
|
|
871
|
+
| 関数 | ワーカーURL設定 | URLに/URLへ/URLと | なでしこv3のファイルのあるURLを設定 | わーかーURLせってい | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L100
|
|
872
872
|
●NAKOワーカー
|
|
873
|
-
| 関数 | ワーカー起動 | URLで/URLを/URLの | 指定したURLでWebWorkerを起動する。ワーカオブジェクトを返す。 | わーかーきどう | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
874
|
-
| 関数 | ワーカーJS起動 | SRCで/SRCを/SRCの | 指定したJavascriptのソースでWebWorkerを起動する。ワーカオブジェクトを返す。 | わーかーJSきどう | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
875
|
-
| 関数 | NAKOワーカー起動 | PLUGINSで | 指定したなでしこ3のWebWorkerを起動する。ワーカオブジェクトを返す。(可変引数) | NAKOわーかーきどう | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
876
|
-
| 関数 | NAKOワーカーハンドラ設定 | WORKに/WORKへ/WORKの | ワーカーにNAKOワーカーのための設定を行う。 | NAKOわーかーはんどらせってい | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
877
|
-
| 関数 | NAKOワーカーデータ受信時 | FUNCでWORKから | 無名関数Fでなでしこv3エンジンに対してワーカーメッセージによりデータを受信した時に実行するイベントを設定。『受信データ』に受信したデータ。『対象イベント』にイベント引数。(可変引数) | NAKOわーかーでーたじゅしんしたとき | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
878
|
-
| 関数 | NAKOワーカー表示時 | FUNCでWORKから | 無名関数Fでなでしこv3エンジンに対してワーカーメッセージにより表示データを受信した時に実行するイベントを設定。『受信データ』に表示しようとしたデータ。『対象イベント』にイベント引数。 | NAKOわーかーひょうじしたとき | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
879
|
-
| 関数 | ワーカーメッセージ受信時 | FUNCでWORKから | 無名関数Fでworkに対してメッセージを受信した時に実行するイベントを設定。『受信データ』に受信したデータ。『対象イベント』にイベント引数。(可変引数) | わーかーめっせーじじゅしんしたとき | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
880
|
-
| 関数 | NAKOワーカープログラム起動 | WORKにDATAを/WORKで | WORKERに固有の形式でプログラムの転送と実行行う。 | NAKOわーかーぷろぐらむきどう | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
881
|
-
| 関数 | NAKOワーカーリセット | WORKを | WORKERに固有の形式でプログラムの転送と実行行う。 | わーかーりせっと | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
882
|
-
| 関数 | ワーカー終了 | WORKを | WORKERを終了する。(可変引数) | わーかーしゅうりょう | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
883
|
-
| 関数 | NAKOワーカー終了 | WORKを | WORKERを終了する。(可変引数) | NAKOわーかーしゅうりょう | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
884
|
-
| 関数 | NAKOワーカーデータ送信 | DATAをWORKに/WORKへ | WORKERに固有の形式でデータを送信する。(可変引数) | NAKOわーかーでーたそうしん | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
885
|
-
| 関数 | ワーカーメッセージ送信 | MSGをWORKに/WORKへ | WORKERにメッセージを送信する。(可変引数) | わーかーめっせーじそうしん | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
886
|
-
| 関数 | NAKOワーカー転送 | DATASをWORKに/WORKへ | WORKERにユーザー定義関数またはユーザ定義のグローバル変数を転送する。(可変引数) | NAKOわーかーてんそう | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#
|
|
873
|
+
| 関数 | ワーカー起動 | URLで/URLを/URLの | 指定したURLでWebWorkerを起動する。ワーカオブジェクトを返す。 | わーかーきどう | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L114
|
|
874
|
+
| 関数 | ワーカーJS起動 | SRCで/SRCを/SRCの | 指定したJavascriptのソースでWebWorkerを起動する。ワーカオブジェクトを返す。 | わーかーJSきどう | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L123
|
|
875
|
+
| 関数 | NAKOワーカー起動 | PLUGINSで | 指定したなでしこ3のWebWorkerを起動する。ワーカオブジェクトを返す。(可変引数) | NAKOわーかーきどう | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L135
|
|
876
|
+
| 関数 | NAKOワーカーハンドラ設定 | WORKに/WORKへ/WORKの | ワーカーにNAKOワーカーのための設定を行う。 | NAKOわーかーはんどらせってい | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L166
|
|
877
|
+
| 関数 | NAKOワーカーデータ受信時 | FUNCでWORKから | 無名関数Fでなでしこv3エンジンに対してワーカーメッセージによりデータを受信した時に実行するイベントを設定。『受信データ』に受信したデータ。『対象イベント』にイベント引数。(可変引数) | NAKOわーかーでーたじゅしんしたとき | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L176
|
|
878
|
+
| 関数 | NAKOワーカー表示時 | FUNCでWORKから | 無名関数Fでなでしこv3エンジンに対してワーカーメッセージにより表示データを受信した時に実行するイベントを設定。『受信データ』に表示しようとしたデータ。『対象イベント』にイベント引数。 | NAKOわーかーひょうじしたとき | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L191
|
|
879
|
+
| 関数 | ワーカーメッセージ受信時 | FUNCでWORKから | 無名関数Fでworkに対してメッセージを受信した時に実行するイベントを設定。『受信データ』に受信したデータ。『対象イベント』にイベント引数。(可変引数) | わーかーめっせーじじゅしんしたとき | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L206
|
|
880
|
+
| 関数 | NAKOワーカープログラム起動 | WORKにDATAを/WORKで | WORKERに固有の形式でプログラムの転送と実行行う。 | NAKOわーかーぷろぐらむきどう | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L221
|
|
881
|
+
| 関数 | NAKOワーカーリセット | WORKを | WORKERに固有の形式でプログラムの転送と実行行う。 | わーかーりせっと | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L234
|
|
882
|
+
| 関数 | ワーカー終了 | WORKを | WORKERを終了する。(可変引数) | わーかーしゅうりょう | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L248
|
|
883
|
+
| 関数 | NAKOワーカー終了 | WORKを | WORKERを終了する。(可変引数) | NAKOわーかーしゅうりょう | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L259
|
|
884
|
+
| 関数 | NAKOワーカーデータ送信 | DATAをWORKに/WORKへ | WORKERに固有の形式でデータを送信する。(可変引数) | NAKOわーかーでーたそうしん | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L277
|
|
885
|
+
| 関数 | ワーカーメッセージ送信 | MSGをWORKに/WORKへ | WORKERにメッセージを送信する。(可変引数) | わーかーめっせーじそうしん | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L292
|
|
886
|
+
| 関数 | NAKOワーカー転送 | DATASをWORKに/WORKへ | WORKERにユーザー定義関数またはユーザ定義のグローバル変数を転送する。(可変引数) | NAKOわーかーてんそう | https://github.com/kujirahand/nadesiko3/tree/master/src/plugin_webworker.mjs#L303
|
|
887
887
|
|
|
888
888
|
|
|
889
889
|
■nadesiko3-music(拡張プラグイン,wnako)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# 日本語プログラミング言語「なでしこ3」言語エンジン (Deno版)
|
|
2
|
+
|
|
3
|
+
本リポジトリのこのディレクトリには、なでしこ3の言語エンジンのみを取り出し、JavaScriptの実行エンジンDenoを使って簡単なコマンドを実行できるようにしたものです。最小限の構成となっています。
|
|
4
|
+
|
|
5
|
+
## 簡単な使い方
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
deno run --allow-all deno/snako.ts (なでしこのプログラム).nako3
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 参考リポジトリ
|
|
12
|
+
|
|
13
|
+
このディレクトリにあるDenoは最小構成になっているため、Denoの機能をもっと利用したい場合には、次のリポジトリを確認してください。
|
|
14
|
+
|
|
15
|
+
- [なでしこ3(Deno版)](https://github.com/kujirahand/nadesiko3deno/)
|
|
16
|
+
|
package/core/package.json
CHANGED
package/core/src/nako_gen.mjs
CHANGED
|
@@ -745,7 +745,8 @@ export class NakoGen {
|
|
|
745
745
|
}
|
|
746
746
|
let variableDeclarations = '';
|
|
747
747
|
const indent = ' ';
|
|
748
|
-
|
|
748
|
+
let pushStack = '';
|
|
749
|
+
let popStack = '';
|
|
749
750
|
const initialNames = new Set();
|
|
750
751
|
if (this.speedMode.invalidSore === 0) {
|
|
751
752
|
initialNames.add('それ');
|
|
@@ -755,8 +756,18 @@ export class NakoGen {
|
|
|
755
756
|
this.varslistSet.push(this.varsSet);
|
|
756
757
|
// JSの引数と引数をバインド
|
|
757
758
|
variableDeclarations += indent + 'const 引数 = arguments;\n';
|
|
758
|
-
// ローカル変数を生成
|
|
759
|
-
|
|
759
|
+
// ローカル変数を生成 (再帰関数呼び出しで引数の値が壊れる問題がある #1663)
|
|
760
|
+
// 暫定変数__localVarsに現在のローカル変数の値をPUSHし、変数を抜ける時にPOPする)
|
|
761
|
+
// 関数として宣言しているが、JS関数となでしこ関数では変数管理の方法が異なるため、完全なローカル変数としては使えない
|
|
762
|
+
// 必ず、pushStack/popStack する必要がある
|
|
763
|
+
pushStack += '\n// PUSH STACK\n';
|
|
764
|
+
pushStack += 'const __localvars = __self.__vars;\n';
|
|
765
|
+
pushStack += '__self.__vars = new Map();\n';
|
|
766
|
+
pushStack += 'try {\n';
|
|
767
|
+
popStack += '} finally {\n';
|
|
768
|
+
popStack += indent + '// POP STACK\n';
|
|
769
|
+
popStack += indent + 'self.__vars = __localvars;\n';
|
|
770
|
+
popStack += '}\n';
|
|
760
771
|
// 宣言済みの名前を保存
|
|
761
772
|
const varsDeclared = Array.from(this.varsSet.names.values());
|
|
762
773
|
let code = '';
|
|
@@ -836,7 +847,7 @@ export class NakoGen {
|
|
|
836
847
|
const tof = (this.usedAsyncFn) ? topOfFunctionAsync : topOfFunction;
|
|
837
848
|
// 関数コード全体を構築
|
|
838
849
|
const lineInfo = ' ' + this.convLineno(node, true, 1) + '\n';
|
|
839
|
-
code = tof + performanceMonitorInjectAtStart + variableDeclarations + lineInfo + code + popStack;
|
|
850
|
+
code = tof + performanceMonitorInjectAtStart + pushStack + variableDeclarations + lineInfo + code + popStack;
|
|
840
851
|
code += endOfFunction;
|
|
841
852
|
// 名前があれば、関数を登録する
|
|
842
853
|
if (name) {
|
package/core/src/nako_gen.mts
CHANGED
|
@@ -807,7 +807,8 @@ export class NakoGen {
|
|
|
807
807
|
}
|
|
808
808
|
let variableDeclarations = ''
|
|
809
809
|
const indent = ' '
|
|
810
|
-
|
|
810
|
+
let pushStack = ''
|
|
811
|
+
let popStack = ''
|
|
811
812
|
const initialNames: Set<string> = new Set()
|
|
812
813
|
if (this.speedMode.invalidSore === 0) {
|
|
813
814
|
initialNames.add('それ')
|
|
@@ -817,8 +818,18 @@ export class NakoGen {
|
|
|
817
818
|
this.varslistSet.push(this.varsSet)
|
|
818
819
|
// JSの引数と引数をバインド
|
|
819
820
|
variableDeclarations += indent + 'const 引数 = arguments;\n'
|
|
820
|
-
// ローカル変数を生成
|
|
821
|
-
|
|
821
|
+
// ローカル変数を生成 (再帰関数呼び出しで引数の値が壊れる問題がある #1663)
|
|
822
|
+
// 暫定変数__localVarsに現在のローカル変数の値をPUSHし、変数を抜ける時にPOPする)
|
|
823
|
+
// 関数として宣言しているが、JS関数となでしこ関数では変数管理の方法が異なるため、完全なローカル変数としては使えない
|
|
824
|
+
// 必ず、pushStack/popStack する必要がある
|
|
825
|
+
pushStack += '\n// PUSH STACK\n'
|
|
826
|
+
pushStack += 'const __localvars = __self.__vars;\n'
|
|
827
|
+
pushStack += '__self.__vars = new Map();\n'
|
|
828
|
+
pushStack += 'try {\n'
|
|
829
|
+
popStack += '} finally {\n'
|
|
830
|
+
popStack += indent + '// POP STACK\n'
|
|
831
|
+
popStack += indent + 'self.__vars = __localvars;\n'
|
|
832
|
+
popStack += '}\n'
|
|
822
833
|
// 宣言済みの名前を保存
|
|
823
834
|
const varsDeclared = Array.from(this.varsSet.names.values())
|
|
824
835
|
let code = ''
|
|
@@ -895,7 +906,7 @@ export class NakoGen {
|
|
|
895
906
|
const tof = (this.usedAsyncFn) ? topOfFunctionAsync : topOfFunction
|
|
896
907
|
// 関数コード全体を構築
|
|
897
908
|
const lineInfo = ' ' + this.convLineno(node, true, 1) + '\n'
|
|
898
|
-
code = tof + performanceMonitorInjectAtStart + variableDeclarations + lineInfo + code + popStack
|
|
909
|
+
code = tof + performanceMonitorInjectAtStart + pushStack + variableDeclarations + lineInfo + code + popStack
|
|
899
910
|
code += endOfFunction
|
|
900
911
|
|
|
901
912
|
// 名前があれば、関数を登録する
|
package/core/test/func_call.mjs
CHANGED
|
@@ -160,4 +160,19 @@ describe('関数呼び出しテスト', async () => {
|
|
|
160
160
|
'TMPを表示。\n'
|
|
161
161
|
await cmp(code, '<<あいうえお>>')
|
|
162
162
|
})
|
|
163
|
+
it('再帰呼び出しでローカル関数の引数が壊れる #1663', async () => {
|
|
164
|
+
const code = '' +
|
|
165
|
+
'CHECK=0\n' +
|
|
166
|
+
'●(AとBで)AAAとは\n' +
|
|
167
|
+
' もし、A<0ならば、0で戻る。\n' +
|
|
168
|
+
' REC1=A\n' +
|
|
169
|
+
' (A-1)と0でAAA\n' +
|
|
170
|
+
' REC2=A\n' +
|
|
171
|
+
' もし、REC1=REC2ならば、CHECK=1\n' + // 再帰呼び出ししても、引数Aの値は変わらないはず
|
|
172
|
+
' (A+B)を戻す\n' +
|
|
173
|
+
'ここまで\n' +
|
|
174
|
+
'4と0でAAA;\n' +
|
|
175
|
+
'CHECKを表示\n'
|
|
176
|
+
await cmp(code, '1')
|
|
177
|
+
})
|
|
163
178
|
})
|
package/package.json
CHANGED
package/release/_hash.txt
CHANGED
|
@@ -24,52 +24,52 @@ nako_gen_async.js:
|
|
|
24
24
|
sha256(base64): 141RazK1UcSlHO71KVaHYHg8hPbF2QAp+ps4ki1bRDA=
|
|
25
25
|
sha512(base64): /73lycspxJ921s+NmqaOKF58X9rCsgEZrZT4O4sW1aCe5CSXtQevIasAoGgIoL3a5RmlaghbaIVASwAgmoE3+g==
|
|
26
26
|
plugin_caniuse.js:
|
|
27
|
-
md5(hex):
|
|
28
|
-
sha256(hex):
|
|
29
|
-
sha256(base64):
|
|
30
|
-
sha512(base64):
|
|
27
|
+
md5(hex): 33fffd601a96078203f322686982b31d
|
|
28
|
+
sha256(hex): 74670bf2f3366a971a1e805e7e5917a4d0fd46b0aeec4ec65c528e13ea39f0e9
|
|
29
|
+
sha256(base64): dGcL8vM2apcaHoBeflkXpND9RrCu7E7GXFKOE+o58Ok=
|
|
30
|
+
sha512(base64): vVxohNimDkGpqMbL6Y9M/fArF5BVj7zJubkr1riOAj5wnYlmYq12i0tREH4cdlVLN+IlDPzORF0YolZYNLxX4w==
|
|
31
31
|
plugin_datetime.js:
|
|
32
32
|
md5(hex): b6edce71a4212feccc7501d9b950eaf1
|
|
33
33
|
sha256(hex): d83af825bbd884cf9d38178121597b443697d035a048c40f84dbf2e39465dfab
|
|
34
34
|
sha256(base64): 2Dr4JbvYhM+dOBeBIVl7RDaX0DWgSMQPhNvy45Rl36s=
|
|
35
35
|
sha512(base64): ulmJpyu0BQOwf1ck+6m7GQdWpCFPOlKEoPAyi8c9xkDKVjJnj6Tt+BjU0zcYGoJrap5GR/nlFFLRui6tMcKOzQ==
|
|
36
36
|
plugin_kansuji.js:
|
|
37
|
-
md5(hex):
|
|
38
|
-
sha256(hex):
|
|
39
|
-
sha256(base64):
|
|
40
|
-
sha512(base64):
|
|
37
|
+
md5(hex): 0ae29ec28ee8ddb51ffea65b19de4246
|
|
38
|
+
sha256(hex): e38a8688a42f2b9b362880eb7890545ef6e8f04f3c89374dff8080005c783afc
|
|
39
|
+
sha256(base64): 44qGiKQvK5s2KIDreJBUXvbo8E88iTdN/4CAAFx4Ovw=
|
|
40
|
+
sha512(base64): Mi5i3EP06csyI4FQQ2MRew9mJQCMhMyxFC5qHRg2vCU/CdfEnJ4RyUia1oomisk3Xa85oXFJVrAFit2NdIjy8g==
|
|
41
41
|
plugin_markup.js:
|
|
42
42
|
md5(hex): 029f7357c8d0bb9afbf3d1ea817c0eeb
|
|
43
43
|
sha256(hex): 6eadcf7397f6a2aec502356dbae635678facefc5d1523314bb004ea9607d5f45
|
|
44
44
|
sha256(base64): bq3Pc5f2oq7FAjVtuuY1Z4+s78XRUjMUuwBOqWB9X0U=
|
|
45
45
|
sha512(base64): J4yw4hL05c1udV2bo66NDwDxweTAEbihTNd00qtNemuROTjeYywIlpdzHh7dwZHJ70b4GuPfgGdBqqwFe1Sp4w==
|
|
46
46
|
plugin_turtle.js:
|
|
47
|
-
md5(hex):
|
|
48
|
-
sha256(hex):
|
|
49
|
-
sha256(base64):
|
|
50
|
-
sha512(base64):
|
|
47
|
+
md5(hex): f76a45654fed3913de8a53c5d32cbdf9
|
|
48
|
+
sha256(hex): d118b3a46f6a264b61120095fcbd9392a62b41b81e50a073588a948fe83fc502
|
|
49
|
+
sha256(base64): 0RizpG9qJkthEgCV/L2TkqYrQbgeUKBzWIqUj+g/xQI=
|
|
50
|
+
sha512(base64): J2nedlE77rxztgNVAXFvNaFbSElUemCCBMYlCG5xMZAp5MkF2HxTcrsEtX9dhM1sk0D4kwIAG5qRjDP7Xdt1nA==
|
|
51
51
|
plugin_webworker.js:
|
|
52
|
-
md5(hex):
|
|
53
|
-
sha256(hex):
|
|
54
|
-
sha256(base64):
|
|
55
|
-
sha512(base64):
|
|
52
|
+
md5(hex): 9b72cb551e2e177c341de0ce419ec2a4
|
|
53
|
+
sha256(hex): d17d84b9558cd8a166bf3796bbc6858793b275bd2d7770d777b6a33d40fdf239
|
|
54
|
+
sha256(base64): 0X2EuVWM2KFmvzeWu8aFh5Oydb0td3DXd7ajPUD98jk=
|
|
55
|
+
sha512(base64): Ng0PwLsqK5lNUJYfhxhyLjWLljY4bSK/yCU9V4T/YWuZgUgMsLr0Fb2yzO1c8/RPJ6hLQ+bj/i9gClRxtgZpAg==
|
|
56
56
|
plugin_weykturtle3d.js:
|
|
57
57
|
md5(hex): d72e132aec4dfc892f763226a58d7cb7
|
|
58
58
|
sha256(hex): 0d531759ccf03bf6123d59309dc544d3bd86106213bcf4b6efdc4d5268b58a23
|
|
59
59
|
sha256(base64): DVMXWczwO/YSPVkwncVE072GEGITvPS279xNUmi1iiM=
|
|
60
60
|
sha512(base64): +xPd92wupWA35XdeBNmIoMft8uqR2zCi5xB5ouAZaG1mukY/9Qr+hClTTpJQrlXRzB+xATHu0NnGcUaf7WKE/g==
|
|
61
61
|
version.js:
|
|
62
|
-
md5(hex):
|
|
63
|
-
sha256(hex):
|
|
64
|
-
sha256(base64):
|
|
65
|
-
sha512(base64):
|
|
62
|
+
md5(hex): 16f2bbb7122b605efbf92478c2876e75
|
|
63
|
+
sha256(hex): b0d225710dd6135e3bb78c43fd180bd7e81a6de84bddb89f7bff0a46e185299b
|
|
64
|
+
sha256(base64): sNIlcQ3WE147t4xD/RgL1+gabehL3bife/8KRuGFKZs=
|
|
65
|
+
sha512(base64): uFzhvjE/6KDKtkQMnbr42WkxnJYLQ4U8QN5VXPO1UBApck47M2cwcNtGZ55R3dKfMFMUE7cwx/GnrLCrZvtmlw==
|
|
66
66
|
wnako3.js:
|
|
67
|
-
md5(hex):
|
|
68
|
-
sha256(hex):
|
|
69
|
-
sha256(base64):
|
|
70
|
-
sha512(base64):
|
|
67
|
+
md5(hex): f5de7cc02a637bc25d39d4e8169d84c8
|
|
68
|
+
sha256(hex): 0c5953cf9e9c000bd58b6e74a8c22f2d0e354542f1f06651f3656bfd242bead7
|
|
69
|
+
sha256(base64): DFlTz56cAAvVi250qMIvLQ41RULx8GZR82Vr/SQr6tc=
|
|
70
|
+
sha512(base64): SGFS6GY9lanRpJND2+cW3cG4TdBKuZ17mEZHnDt/avungAwLw7SAPKV1HdTwDsmZuNra+And5TqMMPXQSzWurQ==
|
|
71
71
|
wnako3webworker.js:
|
|
72
|
-
md5(hex):
|
|
73
|
-
sha256(hex):
|
|
74
|
-
sha256(base64):
|
|
75
|
-
sha512(base64):
|
|
72
|
+
md5(hex): 9e418fb6f0fafd1c1aff62bd1cbeaeb5
|
|
73
|
+
sha256(hex): 365466487ec6bc35d9486cf9f858020ff92cad0bd634159356a8035f8c34058d
|
|
74
|
+
sha256(base64): NlRmSH7GvDXZSGz5+FgCD/ksrQvWNBWTVqgDX4w0BY0=
|
|
75
|
+
sha512(base64): QC9kx0xZkla/WEwc9G1k9NJRpHgOkMADTdfMZFLu0LAjwPDu3g7+0Pw73YcBSk6G6cwFEeM/5giatdScJOJBEg==
|
package/release/_script-tags.txt
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
2
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
3
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
4
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
5
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
6
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
7
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
8
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
9
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
10
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
11
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
12
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
13
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
14
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
15
|
-
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.
|
|
1
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.5&f=release/command.json.js" integrity="sha512-YSaHpL6B0yo7Cb/aWhj6HJf0Tuf2IYYqAGJ66e7EMmfiA0+X30V2UpgN1Kr1a19c0icdUdor70ChOAnS08r7PA==" crossorigin="anonymous"></script>
|
|
2
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.5&f=release/core_src_nako_josi_list_mjs.js" integrity="sha512-0+LAeEfPy2Lrl+DeJMjbBIUda9Y5ttpLGy3/FW8rjSW8bN3udrALJa5V/bhjxU7mYouumV/QGN2wt3oxMCKy9g==" crossorigin="anonymous"></script>
|
|
3
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.5&f=release/core_src_nako_reserved_words_mjs.js" integrity="sha512-UzZigh2tIhgBO3+Sp1wnqKMvAGfhqSRdH2+ffmRy4+8CVNEeepddaDV0oKJ+vyvi28zQLmXeMsjRu+Frj3YlTg==" crossorigin="anonymous"></script>
|
|
4
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.5&f=release/editor.js" integrity="sha512-MRKN4PnxkTsmwFWLwb/wzXf6ilb2jKQJ0s5dGw3h4ZDnNm2Q1WVyuCumy2Y1EJW57XN95MpTm6pnf6bcdBvG2Q==" crossorigin="anonymous"></script>
|
|
5
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.5&f=release/nako_gen_async.js" integrity="sha512-/73lycspxJ921s+NmqaOKF58X9rCsgEZrZT4O4sW1aCe5CSXtQevIasAoGgIoL3a5RmlaghbaIVASwAgmoE3+g==" crossorigin="anonymous"></script>
|
|
6
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.5&f=release/plugin_caniuse.js" integrity="sha512-vVxohNimDkGpqMbL6Y9M/fArF5BVj7zJubkr1riOAj5wnYlmYq12i0tREH4cdlVLN+IlDPzORF0YolZYNLxX4w==" crossorigin="anonymous"></script>
|
|
7
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.5&f=release/plugin_datetime.js" integrity="sha512-ulmJpyu0BQOwf1ck+6m7GQdWpCFPOlKEoPAyi8c9xkDKVjJnj6Tt+BjU0zcYGoJrap5GR/nlFFLRui6tMcKOzQ==" crossorigin="anonymous"></script>
|
|
8
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.5&f=release/plugin_kansuji.js" integrity="sha512-Mi5i3EP06csyI4FQQ2MRew9mJQCMhMyxFC5qHRg2vCU/CdfEnJ4RyUia1oomisk3Xa85oXFJVrAFit2NdIjy8g==" crossorigin="anonymous"></script>
|
|
9
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.5&f=release/plugin_markup.js" integrity="sha512-J4yw4hL05c1udV2bo66NDwDxweTAEbihTNd00qtNemuROTjeYywIlpdzHh7dwZHJ70b4GuPfgGdBqqwFe1Sp4w==" crossorigin="anonymous"></script>
|
|
10
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.5&f=release/plugin_turtle.js" integrity="sha512-J2nedlE77rxztgNVAXFvNaFbSElUemCCBMYlCG5xMZAp5MkF2HxTcrsEtX9dhM1sk0D4kwIAG5qRjDP7Xdt1nA==" crossorigin="anonymous"></script>
|
|
11
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.5&f=release/plugin_webworker.js" integrity="sha512-Ng0PwLsqK5lNUJYfhxhyLjWLljY4bSK/yCU9V4T/YWuZgUgMsLr0Fb2yzO1c8/RPJ6hLQ+bj/i9gClRxtgZpAg==" crossorigin="anonymous"></script>
|
|
12
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.5&f=release/plugin_weykturtle3d.js" integrity="sha512-+xPd92wupWA35XdeBNmIoMft8uqR2zCi5xB5ouAZaG1mukY/9Qr+hClTTpJQrlXRzB+xATHu0NnGcUaf7WKE/g==" crossorigin="anonymous"></script>
|
|
13
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.5&f=release/version.js" integrity="sha512-uFzhvjE/6KDKtkQMnbr42WkxnJYLQ4U8QN5VXPO1UBApck47M2cwcNtGZ55R3dKfMFMUE7cwx/GnrLCrZvtmlw==" crossorigin="anonymous"></script>
|
|
14
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.5&f=release/wnako3.js" integrity="sha512-SGFS6GY9lanRpJND2+cW3cG4TdBKuZ17mEZHnDt/avungAwLw7SAPKV1HdTwDsmZuNra+And5TqMMPXQSzWurQ==" crossorigin="anonymous"></script>
|
|
15
|
+
<script defer src="https://nadesi.com/v3/cdn.php?v=3.6.5&f=release/wnako3webworker.js" integrity="sha512-QC9kx0xZkla/WEwc9G1k9NJRpHgOkMADTdfMZFLu0LAjwPDu3g7+0Pw73YcBSk6G6cwFEeM/5giatdScJOJBEg==" crossorigin="anonymous"></script>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(){"use strict";var o={and_chr:["120"],and_ff:["119"],and_qq:["13.1"],and_uc:["15.5"],android:["120"],chrome:["120","119","118","117","116","109"],edge:["120","119","118"],firefox:["121","120","119","115"],ios_saf:["17.1","17.0","16.6-16.7","16.5","16.3","16.2","16.1","16.0","15.6-15.7"],kaios:["3.0-3.1","2.5"],node:["21.3.0","20.10.0","18.19.0"],op_mini:["all"],op_mob:["73"],opera:["104","103","102"],safari:["17.2","17.1","16.6","15.6"],samsung:["23","22"]};const
|
|
1
|
+
!function(){"use strict";var o={and_chr:["120"],and_ff:["119"],and_qq:["13.1"],and_uc:["15.5"],android:["120"],chrome:["120","119","118","117","116","109"],edge:["120","119","118"],firefox:["121","120","119","115"],ios_saf:["17.1","17.0","16.6-16.7","16.5","16.3","16.2","16.1","16.0","15.6-15.7"],kaios:["3.0-3.1","2.5"],node:["21.3.0","20.10.0","18.19.0"],op_mini:["all"],op_mob:["73"],opera:["104","103","102"],safari:["17.2","17.1","16.6","15.6"],samsung:["23","22"]};const n={meta:{type:"const",value:{pluginName:"plugin_caniuse",description:"対応ブラウザを判定するためのプラグイン",pluginVersion:"3.6.0",nakoRuntime:["wnako"],nakoVersion:"3.6.0"}},"初期化":{type:"func",josi:[],pure:!0,fn:function(o){}},"ブラウザ名変換表":{type:"const",value:{ie:"IE",edge:"Edge",firefox:"Firefox",chrome:"Chrome",safari:"Safari",opera:"Opera",ios_saf:"Safari on iOS",op_mini:"Opera Mini",android:"Android Browser",bb:"Blackberry Browser",op_mob:"Opera Mobile",and_chr:"Chrome for Android",and_ff:"Firefox for Android",ie_mob:"IE Mobile",and_uc:"UC Browser for Android",samsung:"Samsung Internet",and_qq:"QQ Browser",baidu:"Baidu Browser",kaios:"KaiOS Browser"}},"対応ブラウザ一覧取得":{type:"func",josi:[],fn:function(){return o}}};"object"==typeof navigator&&(navigator.nako3,1)&&navigator.nako3.addPluginObject("PluginCaniuse",n)}();
|
|
2
2
|
//# sourceMappingURL=plugin_caniuse.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin_caniuse.js","mappings":"yBAAA,OAAgB,QAAU,CAAC,OAAO,OAAS,CAAC,OAAO,OAAS,CAAC,QAAQ,OAAS,CAAC,QAAQ,QAAU,CAAC,OAAO,OAAS,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,KAAO,CAAC,MAAM,MAAM,OAAO,QAAU,CAAC,MAAM,MAAM,MAAM,OAAO,QAAU,CAAC,OAAO,OAAO,YAAY,OAAO,OAAO,OAAO,OAAO,OAAO,aAAa,MAAQ,CAAC,UAAU,OAAO,KAAO,CAAC,SAAS,UAAU,WAAW,QAAU,CAAC,OAAO,OAAS,CAAC,MAAM,MAAQ,CAAC,MAAM,MAAM,OAAO,OAAS,CAAC,OAAO,OAAO,OAAO,QAAQ,QAAU,CAAC,KAAK,OCOje,MAAMA,EAAgB,CACpB,MAAO,CACLC,KAAM,
|
|
1
|
+
{"version":3,"file":"plugin_caniuse.js","mappings":"yBAAA,OAAgB,QAAU,CAAC,OAAO,OAAS,CAAC,OAAO,OAAS,CAAC,QAAQ,OAAS,CAAC,QAAQ,QAAU,CAAC,OAAO,OAAS,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,KAAO,CAAC,MAAM,MAAM,OAAO,QAAU,CAAC,MAAM,MAAM,MAAM,OAAO,QAAU,CAAC,OAAO,OAAO,YAAY,OAAO,OAAO,OAAO,OAAO,OAAO,aAAa,MAAQ,CAAC,UAAU,OAAO,KAAO,CAAC,SAAS,UAAU,WAAW,QAAU,CAAC,OAAO,OAAS,CAAC,MAAM,MAAQ,CAAC,MAAM,MAAM,OAAO,OAAS,CAAC,OAAO,OAAO,OAAO,QAAQ,QAAU,CAAC,KAAK,OCOje,MAAMA,EAAgB,CACpB,KAAQ,CACNC,KAAM,QACNC,MAAO,CACLC,WAAY,iBACZC,YAAa,sBACbC,cAAe,QACfC,YAAa,CAAC,SACdC,YAAa,UAGjB,MAAO,CACLN,KAAM,OACNO,KAAM,GACNC,MAAM,EACNC,GAAI,SAAUC,GACd,GAGF,WAAY,CAAEV,KAAM,QAASC,MC1B/B,CAAgB,GAAK,KAAK,KAAO,OAAO,QAAU,UAAU,OAAS,SAAS,OAAS,SAAS,MAAQ,QAAQ,QAAU,gBAAgB,QAAU,aAAa,QAAU,kBAAkB,GAAK,qBAAqB,OAAS,eAAe,QAAU,qBAAqB,OAAS,sBAAsB,OAAS,YAAY,OAAS,yBAAyB,QAAU,mBAAmB,OAAS,aAAa,MAAQ,gBAAgB,MAAQ,kBD2Brb,aAAc,CACZD,KAAM,OACNO,KAAM,GACNE,GAAI,WACF,OAAOE,CACT,IAMuB,iBAAhB,YAAoCC,UAAe,MAAvB,IAA4BA,UAAUC,MAAMC,gBAAgB,gBAAiBf,E","sources":["webpack://nadesiko3/./src/browsers.mjs","webpack://nadesiko3/./src/plugin_caniuse.mjs","webpack://nadesiko3/./src/browsers_agents.mjs"],"sourcesContent":["export default {\"and_chr\":[\"120\"],\"and_ff\":[\"119\"],\"and_qq\":[\"13.1\"],\"and_uc\":[\"15.5\"],\"android\":[\"120\"],\"chrome\":[\"120\",\"119\",\"118\",\"117\",\"116\",\"109\"],\"edge\":[\"120\",\"119\",\"118\"],\"firefox\":[\"121\",\"120\",\"119\",\"115\"],\"ios_saf\":[\"17.1\",\"17.0\",\"16.6-16.7\",\"16.5\",\"16.3\",\"16.2\",\"16.1\",\"16.0\",\"15.6-15.7\"],\"kaios\":[\"3.0-3.1\",\"2.5\"],\"node\":[\"21.3.0\",\"20.10.0\",\"18.19.0\"],\"op_mini\":[\"all\"],\"op_mob\":[\"73\"],\"opera\":[\"104\",\"103\",\"102\"],\"safari\":[\"17.2\",\"17.1\",\"16.6\",\"15.6\"],\"samsung\":[\"23\",\"22\"]}","// @ts-nocheck\n// (memo) require('caniuse-db/data.json').agents を確認\n// `npm run build:browsers` を実行すると browsers.mjs が生成される\n\nimport browsers from './browsers.mjs'\nimport agents from './browsers_agents.mjs'\n\nconst PluginCaniuse = {\n 'meta': {\n type: 'const',\n value: {\n pluginName: 'plugin_caniuse', // プラグインの名前\n description: '対応ブラウザを判定するためのプラグイン', // 説明\n pluginVersion: '3.6.0', // プラグインのバージョン\n nakoRuntime: ['wnako'], // 対象ランタイム\n nakoVersion: '3.6.0' // 要求なでしこバージョン\n }\n },\n '初期化': {\n type: 'func',\n josi: [],\n pure: true,\n fn: function (sys) {\n }\n },\n // @ブラウザサポート\n 'ブラウザ名変換表': { type: 'const', value: agents }, // @ぶらうざめいへんかんひょう\n '対応ブラウザ一覧取得': { // @対応しているブラウザの一覧を取得する // @たいおうぶらうざいちらんしゅとく\n type: 'func',\n josi: [],\n fn: function () {\n return browsers\n }\n }\n}\nexport default PluginCaniuse\n// scriptタグで取り込んだ時、自動で登録する\n/* istanbul ignore else */\nif (typeof (navigator) === 'object' && typeof (navigator.nako3)) { navigator.nako3.addPluginObject('PluginCaniuse', PluginCaniuse) }\n","export default {\"ie\":\"IE\",\"edge\":\"Edge\",\"firefox\":\"Firefox\",\"chrome\":\"Chrome\",\"safari\":\"Safari\",\"opera\":\"Opera\",\"ios_saf\":\"Safari on iOS\",\"op_mini\":\"Opera Mini\",\"android\":\"Android Browser\",\"bb\":\"Blackberry Browser\",\"op_mob\":\"Opera Mobile\",\"and_chr\":\"Chrome for Android\",\"and_ff\":\"Firefox for Android\",\"ie_mob\":\"IE Mobile\",\"and_uc\":\"UC Browser for Android\",\"samsung\":\"Samsung Internet\",\"and_qq\":\"QQ Browser\",\"baidu\":\"Baidu Browser\",\"kaios\":\"KaiOS Browser\"}\n"],"names":["PluginCaniuse","type","value","pluginName","description","pluginVersion","nakoRuntime","nakoVersion","josi","pure","fn","sys","browsers","navigator","nako3","addPluginObject"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(){"use strict";const e={"初期化":{type:"func",josi:[],pure:!0,fn:function(e){}},"漢数字":{type:"func",josi:[["を","の"]],pure:!0,fn:function(e){let i="";"+"!==(e=function(e){if(e=function(e){return e.replace(/[0-9]/g,(e=>String.fromCharCode(e.charCodeAt(0)-65248)))}(e),Number.isNaN(Number(e)))throw new Error("『漢数字』命令の中に無効な文字が含まれています。");const n=function(e){const n=e.match(/[0-9]*\.?[0-9]+[eE][-+]?[0-9]+/);if(n&&n[0]===e){const t=e.match(/[0-9]*\.?[0-9]+[eE]/)[0].slice(0,-1),r=e.match(/[eE][-+]?[0-9]+/)[0].slice(1);function u(e,n){const t=n[0],r=e.includes(".")?e.indexOf("."):e.length,u="-"===t?r-parseInt(n.slice(1)):r+parseInt(n.match(/[0-9]+$/)[0]);return u>0?e.length-r>u?function(e,n,t){return e.slice(0,n)+t+e.slice(n)}(e.replace(".",""),u,"."):e.includes(".")?e.replace(".","")+"0".repeat(u-e.length+r):e+"0".repeat(u-e.length+r-1):"0."+"0".repeat(-u)+e.replace(".","")}e=u(t,r)}return e}(e.toString());if(n>BigInt(1e72))throw new Error("『漢数字』命令の中に含められる数の大きさを超えています。");return n}(String(e))).charAt(0)&&"-"!==e.charAt(0)||(i=e.charAt(0),e=e.substr(1));let s=function(e){function i(e){return u[r.indexOf(e)]}let s=0;const c=e.reverse().reduce(((e,r,u)=>{if("string"==typeof r)"."===r?(e="・"+e,s=u+1):e=i(r)+e;else{const c=r.reduce(((e,n,r,u)=>"0"===n?e:"1"===n&&""!==t[u.length-1-r]?e+t[u.length-1-r]:e+i(n)+t[u.length-1-r]),"");e=(c?c+n[u-s]:"")+e}return e}),"");return"・"===c[0]?"零"+c:c}(function(e){let n=e.includes(".");return e.split("").reverse().reduce(((e,r)=>"."===r?(n=!1,e.splice(1,0,"."),e):n?(e.splice(1,0,r),e):(e[0].length===t.length&&e.unshift([]),e[0].unshift(r),e)),[[]])}(e));return""===s&&(s="零"),i+s}},"算用数字":{type:"func",josi:[["を","の"]],pure:!0,fn:function(e){const r=function(e){let n=[],t=[],r=!1;return e.reduce(((u,i,s)=>("."===i?(0===n.length&&n.push(0,1),1===n.length&&n.push(1),t.push(n),n=[],u.push(t),u.push("."),t=[],r=!0):r?u.push(String(i)):i>1e3?(0===n.length&&n.push(0,1),1===n.length&&n.push(1),t.push(n),n=[],t.push(i),u.push(t),t=[]):i>=10&&i<=1e3?(0===n.length&&n.push(1),n.push(i),t.push(n),n=[]):i<10&&n.push(i),s+1===e.length&&!1===r&&(1===n.length&&(n.push(1),t.push(n)),u.push(t)),u)),[])}(function(e){const r=n.filter((e=>e.length>1)),i=[];for(let s=0;s<e.length;s++){const c=e.slice(s,s+1),l=n.includes(c)?c:r.find((n=>n===e.slice(s,s+n.length))),h=t.includes(c)?c:null,o=u.includes(c)?c:null;if(l)l.length>1&&(s+=l.length-1),i.push(BigInt("1"+"0".repeat(4*n.indexOf(l))));else if(h)i.push(10**t.indexOf(h));else if(o)i.push(u.indexOf(o));else if("・"===c)i.push(".");else{if("零"!==c)throw new Error("『算用数字』命令の中に無効な文字が含まれています。");i.push("0")}}return i}(e.toString())).reduce(((e,n,t)=>"string"==typeof n?e+n:e+n.reduce(((e,n,t)=>n>1e3?e*n:e+BigInt(n[0]*n[1])),BigInt(0))),BigInt(0));return r>Number.MAX_SAFE_INTEGER?r:Number(r)}}},n=["","万","億","兆","京","垓","𥝱","穣","溝","澗","正","載","極","恒河沙","阿僧祇","那由他","不可思議","無量大数"],t=["","十","百","千"],r="0123456789".split(""),u="〇一二三四五六七八九".split("");"object"==typeof navigator&&"object"==typeof navigator.nako3&&navigator.nako3.addPluginObject("PluginKansuji",e)}();
|
|
1
|
+
!function(){"use strict";const e={meta:{type:"const",value:{pluginName:"plugin_kansuji",description:"漢数字を使うためのプラグイン",pluginVersion:"3.6.0",nakoRuntime:["wnako"],nakoVersion:"3.6.0"}},"初期化":{type:"func",josi:[],pure:!0,fn:function(e){}},"漢数字":{type:"func",josi:[["を","の"]],pure:!0,fn:function(e){let i="";"+"!==(e=function(e){if(e=function(e){return e.replace(/[0-9]/g,(e=>String.fromCharCode(e.charCodeAt(0)-65248)))}(e),Number.isNaN(Number(e)))throw new Error("『漢数字』命令の中に無効な文字が含まれています。");const n=function(e){const n=e.match(/[0-9]*\.?[0-9]+[eE][-+]?[0-9]+/);if(n&&n[0]===e){const t=e.match(/[0-9]*\.?[0-9]+[eE]/)[0].slice(0,-1),r=e.match(/[eE][-+]?[0-9]+/)[0].slice(1);function u(e,n){const t=n[0],r=e.includes(".")?e.indexOf("."):e.length,u="-"===t?r-parseInt(n.slice(1)):r+parseInt(n.match(/[0-9]+$/)[0]);return u>0?e.length-r>u?function(e,n,t){return e.slice(0,n)+t+e.slice(n)}(e.replace(".",""),u,"."):e.includes(".")?e.replace(".","")+"0".repeat(u-e.length+r):e+"0".repeat(u-e.length+r-1):"0."+"0".repeat(-u)+e.replace(".","")}e=u(t,r)}return e}(e.toString());if(n>BigInt(1e72))throw new Error("『漢数字』命令の中に含められる数の大きさを超えています。");return n}(String(e))).charAt(0)&&"-"!==e.charAt(0)||(i=e.charAt(0),e=e.substr(1));let s=function(e){function i(e){return u[r.indexOf(e)]}let s=0;const c=e.reverse().reduce(((e,r,u)=>{if("string"==typeof r)"."===r?(e="・"+e,s=u+1):e=i(r)+e;else{const c=r.reduce(((e,n,r,u)=>"0"===n?e:"1"===n&&""!==t[u.length-1-r]?e+t[u.length-1-r]:e+i(n)+t[u.length-1-r]),"");e=(c?c+n[u-s]:"")+e}return e}),"");return"・"===c[0]?"零"+c:c}(function(e){let n=e.includes(".");return e.split("").reverse().reduce(((e,r)=>"."===r?(n=!1,e.splice(1,0,"."),e):n?(e.splice(1,0,r),e):(e[0].length===t.length&&e.unshift([]),e[0].unshift(r),e)),[[]])}(e));return""===s&&(s="零"),i+s}},"算用数字":{type:"func",josi:[["を","の"]],pure:!0,fn:function(e){const r=function(e){let n=[],t=[],r=!1;return e.reduce(((u,i,s)=>("."===i?(0===n.length&&n.push(0,1),1===n.length&&n.push(1),t.push(n),n=[],u.push(t),u.push("."),t=[],r=!0):r?u.push(String(i)):i>1e3?(0===n.length&&n.push(0,1),1===n.length&&n.push(1),t.push(n),n=[],t.push(i),u.push(t),t=[]):i>=10&&i<=1e3?(0===n.length&&n.push(1),n.push(i),t.push(n),n=[]):i<10&&n.push(i),s+1===e.length&&!1===r&&(1===n.length&&(n.push(1),t.push(n)),u.push(t)),u)),[])}(function(e){const r=n.filter((e=>e.length>1)),i=[];for(let s=0;s<e.length;s++){const c=e.slice(s,s+1),l=n.includes(c)?c:r.find((n=>n===e.slice(s,s+n.length))),h=t.includes(c)?c:null,o=u.includes(c)?c:null;if(l)l.length>1&&(s+=l.length-1),i.push(BigInt("1"+"0".repeat(4*n.indexOf(l))));else if(h)i.push(10**t.indexOf(h));else if(o)i.push(u.indexOf(o));else if("・"===c)i.push(".");else{if("零"!==c)throw new Error("『算用数字』命令の中に無効な文字が含まれています。");i.push("0")}}return i}(e.toString())).reduce(((e,n,t)=>"string"==typeof n?e+n:e+n.reduce(((e,n,t)=>n>1e3?e*n:e+BigInt(n[0]*n[1])),BigInt(0))),BigInt(0));return r>Number.MAX_SAFE_INTEGER?r:Number(r)}}},n=["","万","億","兆","京","垓","𥝱","穣","溝","澗","正","載","極","恒河沙","阿僧祇","那由他","不可思議","無量大数"],t=["","十","百","千"],r="0123456789".split(""),u="〇一二三四五六七八九".split("");"object"==typeof navigator&&"object"==typeof navigator.nako3&&navigator.nako3.addPluginObject("PluginKansuji",e)}();
|
|
2
2
|
//# sourceMappingURL=plugin_kansuji.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin_kansuji.js","mappings":"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","sources":["webpack://nadesiko3/./src/plugin_kansuji.mjs"],"sourcesContent":["// @ts-nocheck\nconst PluginKansuji = {\n\n '初期化': {\n type: 'func',\n josi: [],\n pure: true,\n fn: function (sys) {\n }\n },\n\n // @漢数字関連\n '漢数字': { // @引数を数字と解釈して漢数字の文字列を返す // @かんすうじ\n type: 'func',\n josi: [['を', 'の']],\n pure: true,\n fn: function (input) {\n function preprocesser (input) {\n // eslint-disable-next-line camelcase\n function if_number_is_exponent (input) {\n const match = input.match(/[0-9]*\\.?[0-9]+[eE][-+]?[0-9]+/)\n if (match && match[0] === input) {\n const base = input.match(/[0-9]*\\.?[0-9]+[eE]/)[0].slice(0, -1)\n const exponent = input.match(/[eE][-+]?[0-9]+/)[0].slice(1)\n // eslint-disable-next-line no-inner-declarations\n function movepoint (base, exponent) {\n const sign = exponent[0]\n const curpointidx = base.includes('.') ? base.indexOf('.') : base.length\n const idx = sign === '-' ? curpointidx - parseInt(exponent.slice(1)) : curpointidx + parseInt(exponent.match(/[0-9]+$/)[0])\n function strIns (str, idx, val) {\n return str.slice(0, idx) + val + str.slice(idx)\n }\n if (idx > 0) {\n if (base.length - curpointidx > idx) {\n return strIns(base.replace('.', ''), idx, '.')\n } else {\n if (base.includes('.')) {\n return base.replace('.', '') + '0'.repeat(idx - base.length + curpointidx)\n } else {\n return base + '0'.repeat(idx - base.length + curpointidx - 1)\n }\n }\n } else {\n return '0.' + '0'.repeat(-idx) + base.replace('.', '')\n }\n }\n input = movepoint(base, exponent)\n }\n return input\n }\n function asciify (input) { // 全角数字を半角数字に\n return input.replace(/[0-9]/g, s => {\n return String.fromCharCode(s.charCodeAt(0) - 65248)\n })\n }\n input = asciify(input)\n if (Number.isNaN(Number(input))) { throw new Error('『漢数字』命令の中に無効な文字が含まれています。') }\n const output = if_number_is_exponent(input.toString())\n // eslint-disable-next-line no-loss-of-precision\n if (output > BigInt(999999999999999999999999999999999999999999999999999999999999999999999999)) { throw new Error('『漢数字』命令の中に含められる数の大きさを超えています。') }\n return output\n }\n input = preprocesser(String(input))\n function separater (str) {\n let isminus = str.includes('.')\n return str.split('').reverse().reduce((acc, cur) => {\n if (cur === '.') {\n isminus = false\n acc.splice(1, 0, '.')\n return acc\n } else if (isminus) {\n acc.splice(1, 0, cur)\n return acc\n }\n if (acc[0].length === 軸数字.length) {\n acc.unshift([])\n }\n acc[0].unshift(cur)\n return acc\n }, [[]])\n }\n function converter (arr) {\n function replacer (str) {\n return 基本漢数字[基本算用数字.indexOf(str)]\n }\n let adjuster = 0\n const result = arr.reverse().reduce((acc, cur, idx) => {\n if (typeof cur === 'string') {\n if (cur === '.') {\n acc = '・' + acc\n adjuster = idx + 1\n } else {\n acc = replacer(cur) + acc\n }\n } else {\n const unit = cur.reduce((acc, cur, idx, src) => {\n if (cur === '0') {\n return acc\n } else if (cur === '1' && 軸数字[src.length - 1 - idx] !== '') {\n return acc + 軸数字[src.length - 1 - idx]\n } else {\n return acc + replacer(cur) + 軸数字[src.length - 1 - idx]\n }\n }, '')\n acc = (unit ? unit + 単位数字[idx - adjuster] : '') + acc\n }\n return acc\n }, '')\n return result[0] === '・' ? '零' + result : result\n }\n // フラグを覚えておく #874\n let flag = ''\n if (input.charAt(0) === '+' || input.charAt(0) === '-') {\n flag = input.charAt(0)\n input = input.substr(1)\n }\n let res = converter(separater(input))\n if (res === '') { res = '零' }\n return flag + res\n }\n },\n '算用数字': { // @U引数を漢数字と解釈して数値を返す // @さんようすうじ\n type: 'func',\n josi: [['を', 'の']],\n pure: true,\n fn: function (input) {\n function converter (src) {\n const multibytes = 単位数字.filter(a => a.length > 1)\n const result = []\n for (let idx = 0; idx < src.length; idx++) {\n const cur = src.slice(idx, idx + 1)\n const 指数 = 単位数字.includes(cur) ? cur : multibytes.find(v => v === src.slice(idx, idx + v.length))\n const 位 = 軸数字.includes(cur) ? cur : null\n const 底 = 基本漢数字.includes(cur) ? cur : null\n if (指数) {\n if (指数.length > 1) {\n idx += 指数.length - 1\n }\n result.push(BigInt('1' + '0'.repeat(4 * 単位数字.indexOf(指数))))\n } else if (位) {\n result.push(10 ** (軸数字.indexOf(位)))\n } else if (底) {\n result.push(基本漢数字.indexOf(底))\n } else if (cur === '・') {\n result.push('.')\n } else if (cur === '零') {\n result.push('0')\n } else {\n throw new Error('『算用数字』命令の中に無効な文字が含まれています。')\n }\n }\n return result\n }\n function separater (arr) {\n let base = []\n let unit = []\n let isminus = false\n return arr.reduce((acc, cur, idx) => {\n if (cur === '.') {\n if (base.length === 0) { base.push(0, 1) }\n if (base.length === 1) { base.push(1) }\n unit.push(base)\n base = []\n acc.push(unit)\n acc.push('.')\n unit = []\n isminus = true\n } else if (isminus) {\n acc.push(String(cur))\n } else if (cur > 1000) {\n if (base.length === 0) { base.push(0, 1) }\n if (base.length === 1) { base.push(1) }\n unit.push(base)\n base = []\n unit.push(cur)\n acc.push(unit)\n unit = []\n } else if (cur >= 10 && cur <= 1000) {\n if (base.length === 0) { base.push(1) }\n base.push(cur)\n unit.push(base)\n base = []\n } else if (cur < 10) {\n base.push(cur)\n }\n if (idx + 1 === arr.length && isminus === false) {\n if (base.length === 1) {\n base.push(1)\n unit.push(base)\n }\n acc.push(unit)\n }\n return acc\n }, [])\n }\n function calculator (arr) {\n return arr.reduce((acc, cur, idx) => {\n return typeof cur === 'string'\n ? acc + cur\n : acc + cur.reduce((acc, cur, idx) => {\n return cur > 1000 ? acc * cur : acc + BigInt(cur[0] * cur[1])\n }, BigInt(0))\n }, BigInt(0))\n }\n const tmp = calculator(separater(converter(input.toString())))\n return tmp > Number.MAX_SAFE_INTEGER ? tmp : Number(tmp)\n }\n }\n}\n\nconst 単位数字 = [\n '', '万', '億', '兆', '京', '垓', '𥝱', '穣', '溝', '澗', '正',\n '載', '極', '恒河沙', '阿僧祇', '那由他', '不可思議', '無量大数'\n]\nconst 軸数字 = [\n '', '十', '百', '千'\n]\nconst 基本算用数字 = '0123456789'.split('')\nconst 基本漢数字 = '〇一二三四五六七八九'.split('')\n\nexport default PluginKansuji\n\n// scriptタグで取り込んだ時、自動で登録する\nif (typeof (navigator) === 'object' && typeof (navigator.nako3) === 'object') { navigator.nako3.addPluginObject('PluginKansuji', PluginKansuji) }\n"],"names":["PluginKansuji","type","josi","pure","fn","sys","input","flag","replace","s","String","fromCharCode","charCodeAt","asciify","Number","isNaN","Error","output","match","base","slice","exponent","movepoint","sign","curpointidx","includes","indexOf","length","idx","parseInt","str","val","strIns","repeat","if_number_is_exponent","toString","BigInt","preprocesser","charAt","substr","res","arr","replacer","adjuster","result","reverse","reduce","acc","cur","unit","src","converter","isminus","split","splice","unshift","separater","tmp","push","multibytes","filter","a","find","v","MAX_SAFE_INTEGER","navigator","nako3","addPluginObject"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"plugin_kansuji.js","mappings":"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","sources":["webpack://nadesiko3/./src/plugin_kansuji.mjs"],"sourcesContent":["// @ts-nocheck\nconst PluginKansuji = {\n 'meta': {\n type: 'const',\n value: {\n pluginName: 'plugin_kansuji', // プラグインの名前\n description: '漢数字を使うためのプラグイン', // 説明\n pluginVersion: '3.6.0', // プラグインのバージョン\n nakoRuntime: ['wnako'], // 対象ランタイム\n nakoVersion: '3.6.0' // 要求なでしこバージョン\n }\n },\n\n '初期化': {\n type: 'func',\n josi: [],\n pure: true,\n fn: function (sys) {\n }\n },\n\n // @漢数字関連\n '漢数字': { // @引数を数字と解釈して漢数字の文字列を返す // @かんすうじ\n type: 'func',\n josi: [['を', 'の']],\n pure: true,\n fn: function (input) {\n function preprocesser (input) {\n // eslint-disable-next-line camelcase\n function if_number_is_exponent (input) {\n const match = input.match(/[0-9]*\\.?[0-9]+[eE][-+]?[0-9]+/)\n if (match && match[0] === input) {\n const base = input.match(/[0-9]*\\.?[0-9]+[eE]/)[0].slice(0, -1)\n const exponent = input.match(/[eE][-+]?[0-9]+/)[0].slice(1)\n // eslint-disable-next-line no-inner-declarations\n function movepoint (base, exponent) {\n const sign = exponent[0]\n const curpointidx = base.includes('.') ? base.indexOf('.') : base.length\n const idx = sign === '-' ? curpointidx - parseInt(exponent.slice(1)) : curpointidx + parseInt(exponent.match(/[0-9]+$/)[0])\n function strIns (str, idx, val) {\n return str.slice(0, idx) + val + str.slice(idx)\n }\n if (idx > 0) {\n if (base.length - curpointidx > idx) {\n return strIns(base.replace('.', ''), idx, '.')\n } else {\n if (base.includes('.')) {\n return base.replace('.', '') + '0'.repeat(idx - base.length + curpointidx)\n } else {\n return base + '0'.repeat(idx - base.length + curpointidx - 1)\n }\n }\n } else {\n return '0.' + '0'.repeat(-idx) + base.replace('.', '')\n }\n }\n input = movepoint(base, exponent)\n }\n return input\n }\n function asciify (input) { // 全角数字を半角数字に\n return input.replace(/[0-9]/g, s => {\n return String.fromCharCode(s.charCodeAt(0) - 65248)\n })\n }\n input = asciify(input)\n if (Number.isNaN(Number(input))) { throw new Error('『漢数字』命令の中に無効な文字が含まれています。') }\n const output = if_number_is_exponent(input.toString())\n // eslint-disable-next-line no-loss-of-precision\n if (output > BigInt(999999999999999999999999999999999999999999999999999999999999999999999999)) { throw new Error('『漢数字』命令の中に含められる数の大きさを超えています。') }\n return output\n }\n input = preprocesser(String(input))\n function separater (str) {\n let isminus = str.includes('.')\n return str.split('').reverse().reduce((acc, cur) => {\n if (cur === '.') {\n isminus = false\n acc.splice(1, 0, '.')\n return acc\n } else if (isminus) {\n acc.splice(1, 0, cur)\n return acc\n }\n if (acc[0].length === 軸数字.length) {\n acc.unshift([])\n }\n acc[0].unshift(cur)\n return acc\n }, [[]])\n }\n function converter (arr) {\n function replacer (str) {\n return 基本漢数字[基本算用数字.indexOf(str)]\n }\n let adjuster = 0\n const result = arr.reverse().reduce((acc, cur, idx) => {\n if (typeof cur === 'string') {\n if (cur === '.') {\n acc = '・' + acc\n adjuster = idx + 1\n } else {\n acc = replacer(cur) + acc\n }\n } else {\n const unit = cur.reduce((acc, cur, idx, src) => {\n if (cur === '0') {\n return acc\n } else if (cur === '1' && 軸数字[src.length - 1 - idx] !== '') {\n return acc + 軸数字[src.length - 1 - idx]\n } else {\n return acc + replacer(cur) + 軸数字[src.length - 1 - idx]\n }\n }, '')\n acc = (unit ? unit + 単位数字[idx - adjuster] : '') + acc\n }\n return acc\n }, '')\n return result[0] === '・' ? '零' + result : result\n }\n // フラグを覚えておく #874\n let flag = ''\n if (input.charAt(0) === '+' || input.charAt(0) === '-') {\n flag = input.charAt(0)\n input = input.substr(1)\n }\n let res = converter(separater(input))\n if (res === '') { res = '零' }\n return flag + res\n }\n },\n '算用数字': { // @U引数を漢数字と解釈して数値を返す // @さんようすうじ\n type: 'func',\n josi: [['を', 'の']],\n pure: true,\n fn: function (input) {\n function converter (src) {\n const multibytes = 単位数字.filter(a => a.length > 1)\n const result = []\n for (let idx = 0; idx < src.length; idx++) {\n const cur = src.slice(idx, idx + 1)\n const 指数 = 単位数字.includes(cur) ? cur : multibytes.find(v => v === src.slice(idx, idx + v.length))\n const 位 = 軸数字.includes(cur) ? cur : null\n const 底 = 基本漢数字.includes(cur) ? cur : null\n if (指数) {\n if (指数.length > 1) {\n idx += 指数.length - 1\n }\n result.push(BigInt('1' + '0'.repeat(4 * 単位数字.indexOf(指数))))\n } else if (位) {\n result.push(10 ** (軸数字.indexOf(位)))\n } else if (底) {\n result.push(基本漢数字.indexOf(底))\n } else if (cur === '・') {\n result.push('.')\n } else if (cur === '零') {\n result.push('0')\n } else {\n throw new Error('『算用数字』命令の中に無効な文字が含まれています。')\n }\n }\n return result\n }\n function separater (arr) {\n let base = []\n let unit = []\n let isminus = false\n return arr.reduce((acc, cur, idx) => {\n if (cur === '.') {\n if (base.length === 0) { base.push(0, 1) }\n if (base.length === 1) { base.push(1) }\n unit.push(base)\n base = []\n acc.push(unit)\n acc.push('.')\n unit = []\n isminus = true\n } else if (isminus) {\n acc.push(String(cur))\n } else if (cur > 1000) {\n if (base.length === 0) { base.push(0, 1) }\n if (base.length === 1) { base.push(1) }\n unit.push(base)\n base = []\n unit.push(cur)\n acc.push(unit)\n unit = []\n } else if (cur >= 10 && cur <= 1000) {\n if (base.length === 0) { base.push(1) }\n base.push(cur)\n unit.push(base)\n base = []\n } else if (cur < 10) {\n base.push(cur)\n }\n if (idx + 1 === arr.length && isminus === false) {\n if (base.length === 1) {\n base.push(1)\n unit.push(base)\n }\n acc.push(unit)\n }\n return acc\n }, [])\n }\n function calculator (arr) {\n return arr.reduce((acc, cur, idx) => {\n return typeof cur === 'string'\n ? acc + cur\n : acc + cur.reduce((acc, cur, idx) => {\n return cur > 1000 ? acc * cur : acc + BigInt(cur[0] * cur[1])\n }, BigInt(0))\n }, BigInt(0))\n }\n const tmp = calculator(separater(converter(input.toString())))\n return tmp > Number.MAX_SAFE_INTEGER ? tmp : Number(tmp)\n }\n }\n}\n\nconst 単位数字 = [\n '', '万', '億', '兆', '京', '垓', '𥝱', '穣', '溝', '澗', '正',\n '載', '極', '恒河沙', '阿僧祇', '那由他', '不可思議', '無量大数'\n]\nconst 軸数字 = [\n '', '十', '百', '千'\n]\nconst 基本算用数字 = '0123456789'.split('')\nconst 基本漢数字 = '〇一二三四五六七八九'.split('')\n\nexport default PluginKansuji\n\n// scriptタグで取り込んだ時、自動で登録する\nif (typeof (navigator) === 'object' && typeof (navigator.nako3) === 'object') { navigator.nako3.addPluginObject('PluginKansuji', PluginKansuji) }\n"],"names":["PluginKansuji","type","value","pluginName","description","pluginVersion","nakoRuntime","nakoVersion","josi","pure","fn","sys","input","flag","replace","s","String","fromCharCode","charCodeAt","asciify","Number","isNaN","Error","output","match","base","slice","exponent","movepoint","sign","curpointidx","includes","indexOf","length","idx","parseInt","str","val","strIns","repeat","if_number_is_exponent","toString","BigInt","preprocesser","charAt","substr","res","arr","replacer","adjuster","result","reverse","reduce","acc","cur","unit","src","converter","isminus","split","splice","unshift","separater","tmp","push","multibytes","filter","a","find","v","MAX_SAFE_INTEGER","navigator","nako3","addPluginObject"],"sourceRoot":""}
|