nadesiko3 3.7.13 → 3.7.14

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.
Files changed (127) hide show
  1. package/batch/command.txt +473 -473
  2. package/batch/jsplugin2text.nako3 +2 -0
  3. package/core/package.json +1 -1
  4. package/core/src/nako3.mjs +0 -4
  5. package/core/src/nako3.mts +55 -55
  6. package/core/src/nako_ast.mjs +0 -1
  7. package/core/src/nako_ast.mts +1 -1
  8. package/core/src/nako_colors.mjs +0 -1
  9. package/core/src/nako_colors.mts +1 -1
  10. package/core/src/nako_core_version.mjs +2 -2
  11. package/core/src/nako_core_version.mts +2 -2
  12. package/core/src/nako_csv.mjs +0 -1
  13. package/core/src/nako_csv.mts +9 -9
  14. package/core/src/nako_errors.mts +8 -8
  15. package/core/src/nako_from_dncl.mts +5 -5
  16. package/core/src/nako_from_dncl2.mjs +0 -1
  17. package/core/src/nako_from_dncl2.mts +5 -5
  18. package/core/src/nako_gen.mjs +13 -15
  19. package/core/src/nako_gen.mts +224 -220
  20. package/core/src/nako_global.mts +11 -11
  21. package/core/src/nako_indent.mts +92 -92
  22. package/core/src/nako_indent_chars.mts +1 -1
  23. package/core/src/nako_indent_inline.mjs +11 -11
  24. package/core/src/nako_indent_inline.mts +20 -20
  25. package/core/src/nako_lex_rules.mjs +0 -1
  26. package/core/src/nako_lex_rules.mts +8 -8
  27. package/core/src/nako_lexer.mjs +0 -1
  28. package/core/src/nako_lexer.mts +23 -23
  29. package/core/src/nako_logger.mjs +1 -1
  30. package/core/src/nako_logger.mts +38 -38
  31. package/core/src/nako_parser3.mjs +4 -5
  32. package/core/src/nako_parser3.mts +79 -79
  33. package/core/src/nako_parser_base.mjs +1 -1
  34. package/core/src/nako_parser_base.mts +68 -68
  35. package/core/src/nako_parser_const.mjs +0 -1
  36. package/core/src/nako_parser_const.mts +1 -1
  37. package/core/src/nako_prepare.mts +12 -12
  38. package/core/src/nako_source_mapping.mts +9 -9
  39. package/core/src/nako_token.mjs +0 -1
  40. package/core/src/nako_token.mts +2 -2
  41. package/core/src/nako_tools.mjs +0 -1
  42. package/core/src/nako_tools.mts +4 -4
  43. package/core/src/nako_types.mjs +0 -1
  44. package/core/src/nako_types.mts +3 -3
  45. package/core/src/plugin_api.mjs +0 -1
  46. package/core/src/plugin_api.mts +1 -1
  47. package/core/src/plugin_csv.mjs +0 -1
  48. package/core/src/plugin_csv.mts +7 -7
  49. package/core/src/plugin_math.mjs +0 -1
  50. package/core/src/plugin_math.mts +39 -40
  51. package/core/src/plugin_promise.mjs +1 -1
  52. package/core/src/plugin_promise.mts +9 -9
  53. package/core/src/plugin_system.mjs +1 -10
  54. package/core/src/plugin_system.mts +319 -321
  55. package/core/src/plugin_test.mjs +0 -2
  56. package/core/src/plugin_test.mts +6 -6
  57. package/core/src/plugin_toml.mjs +1 -1
  58. package/core/src/plugin_toml.mts +4 -4
  59. package/core/test/flow_test.mjs +22 -0
  60. package/package.json +31 -34
  61. package/release/_hash.txt +24 -24
  62. package/release/_script-tags.txt +16 -16
  63. package/release/command_cnako3.json +1 -1
  64. package/release/edit_main.js +33 -21
  65. package/release/edit_main.js.map +4 -4
  66. package/release/editor.js +33 -21
  67. package/release/plugin_keigo.js.map +2 -2
  68. package/release/plugin_turtle.js.map +2 -2
  69. package/release/plugin_weykturtle3d.js.map +2 -2
  70. package/release/version.js +29 -17
  71. package/release/version_main.js +29 -17
  72. package/release/version_main.js.map +4 -4
  73. package/release/wnako3.js +51 -44
  74. package/release/wnako3.js.map +3 -3
  75. package/release/wnako3webworker.js +45 -38
  76. package/release/wnako3webworker.js.map +2 -2
  77. package/src/cnako3.mts +1 -1
  78. package/src/cnako3mod.mjs +4 -7
  79. package/src/cnako3mod.mts +24 -24
  80. package/src/commander_ja.mts +8 -8
  81. package/src/deno_wrapper.mjs +0 -1
  82. package/src/deno_wrapper.mts +5 -5
  83. package/src/nako_version.mjs +2 -2
  84. package/src/nako_version.mts +2 -2
  85. package/src/plugin_browser.mjs +21 -29
  86. package/src/plugin_browser.mts +30 -35
  87. package/src/plugin_browser_ajax.mts +27 -27
  88. package/src/plugin_browser_audio.mjs +0 -1
  89. package/src/plugin_browser_audio.mts +11 -11
  90. package/src/plugin_browser_camera.mts +8 -8
  91. package/src/plugin_browser_canvas.mjs +0 -2
  92. package/src/plugin_browser_canvas.mts +34 -34
  93. package/src/plugin_browser_chart.mjs +0 -1
  94. package/src/plugin_browser_chart.mts +13 -13
  95. package/src/plugin_browser_color.mts +2 -2
  96. package/src/plugin_browser_crypto.mts +5 -5
  97. package/src/plugin_browser_dialog.mts +4 -4
  98. package/src/plugin_browser_dom_basic.mts +42 -42
  99. package/src/plugin_browser_dom_event.mjs +0 -1
  100. package/src/plugin_browser_dom_event.mts +27 -28
  101. package/src/plugin_browser_dom_parts.mjs +0 -2
  102. package/src/plugin_browser_dom_parts.mts +31 -31
  103. package/src/plugin_browser_geolocation.mts +3 -3
  104. package/src/plugin_browser_hotkey.mts +3 -3
  105. package/src/plugin_browser_html.mts +4 -4
  106. package/src/plugin_browser_in_worker.mts +1 -1
  107. package/src/plugin_browser_location.mts +2 -2
  108. package/src/plugin_browser_speech.mts +7 -7
  109. package/src/plugin_browser_storage.mts +11 -11
  110. package/src/plugin_browser_system.mts +2 -2
  111. package/src/plugin_browser_websocket.mts +6 -6
  112. package/src/plugin_httpserver.mts +17 -17
  113. package/src/plugin_keigo.mts +5 -5
  114. package/src/plugin_node.mjs +7 -48
  115. package/src/plugin_node.mts +114 -145
  116. package/src/plugin_turtle.mts +143 -143
  117. package/src/plugin_weykturtle3d.mjs +0 -3
  118. package/src/plugin_weykturtle3d.mts +135 -135
  119. package/src/plugin_weykturtle3d_three.mjs +0 -1
  120. package/src/plugin_weykturtle3d_three.mts +1 -1
  121. package/src/plugin_weykturtle3d_threeutil.mts +3 -3
  122. package/src/wnako3.mjs +0 -1
  123. package/src/wnako3.mts +1 -1
  124. package/src/wnako3_editor.mjs +0 -2
  125. package/src/wnako3_editor.mts +132 -132
  126. package/src/wnako3mod.mjs +0 -5
  127. package/src/wnako3mod.mts +19 -19
@@ -1,4 +1,4 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
1
+
2
2
  // なでしこの字句解析を行う
3
3
  // 既に全角半角を揃えたコードに対して字句解析を行う
4
4
  import { opPriority } from './nako_parser_const.mjs'
@@ -32,7 +32,7 @@ export class NakoLexer {
32
32
  /**
33
33
  * @param logger
34
34
  */
35
- constructor (logger: NakoLogger) {
35
+ constructor(logger: NakoLogger) {
36
36
  this.logger = logger // 字句解析した際,確認された関数の一覧
37
37
  this.funclist = new Map()
38
38
  this.modList = [] // 字句解析した際,取り込むモジュール一覧 --- nako3::lex で更新される
@@ -44,12 +44,12 @@ export class NakoLexer {
44
44
  }
45
45
 
46
46
  /** 関数一覧をセット */
47
- setFuncList (listMap: FuncList) {
47
+ setFuncList(listMap: FuncList) {
48
48
  this.funclist = listMap
49
49
  }
50
50
 
51
51
  /** モジュール公開既定値一覧をセット */
52
- setModuleExport (exportObj: ExportMap) {
52
+ setModuleExport(exportObj: ExportMap) {
53
53
  this.moduleExport = exportObj
54
54
  }
55
55
 
@@ -58,7 +58,7 @@ export class NakoLexer {
58
58
  * @param {boolean} isFirst
59
59
  * @param {string} filename
60
60
  */
61
- replaceTokens (tokens: Token[], isFirst: boolean, filename: string) {
61
+ replaceTokens(tokens: Token[], isFirst: boolean, filename: string) {
62
62
  this.result = tokens
63
63
  this.modName = NakoLexer.filenameToModName(filename)
64
64
  // 関数の定義があれば funclist を更新
@@ -126,7 +126,7 @@ export class NakoLexer {
126
126
  * ファイル内で定義されている関数名を列挙する。結果はfunclistに書き込む。その他のトークンの置換処理も行う。
127
127
  * シンタックスハイライトの処理から呼び出すためにstaticメソッドにしている。
128
128
  */
129
- static preDefineFunc (tokens: Token[], logger: NakoLogger, funclist: FuncList, moduleexport: ExportMap) {
129
+ static preDefineFunc(tokens: Token[], logger: NakoLogger, funclist: FuncList, moduleexport: ExportMap) {
130
130
  // 関数を先読みして定義
131
131
  let i = 0
132
132
  let isFuncPointer = false
@@ -300,7 +300,7 @@ export class NakoLexer {
300
300
  }
301
301
 
302
302
  /** 文字列を{と}の部分で分割する。中括弧が対応していない場合nullを返す。 */
303
- splitStringEx (code: string): string[] | null {
303
+ splitStringEx(code: string): string[] | null {
304
304
  /** @type {string[]} */
305
305
  const list = []
306
306
 
@@ -319,7 +319,7 @@ export class NakoLexer {
319
319
  return list
320
320
  }
321
321
 
322
- _replaceWord (tokens: Token[]): void {
322
+ _replaceWord(tokens: Token[]): void {
323
323
  let comment = []
324
324
  let i = 0
325
325
  let isFuncPointer = false
@@ -524,7 +524,7 @@ export class NakoLexer {
524
524
  * インデントの個数を数える
525
525
  * @returns 戻り値として[インデント数, 読み飛ばすべき文字数]を返す
526
526
  */
527
- countIndent (src: string): number[] {
527
+ countIndent(src: string): number[] {
528
528
  let indent = 0
529
529
  for (let i = 0; i < src.length; i++) {
530
530
  const c = src.charAt(i)
@@ -543,7 +543,7 @@ export class NakoLexer {
543
543
  * @param line 先頭行の行番号
544
544
  * @param filename ファイル名
545
545
  */
546
- tokenize (src: string, line: number, filename: string): Token[] {
546
+ tokenize(src: string, line: number, filename: string): Token[] {
547
547
  const srcLength: number = src.length
548
548
  const result: Token[] = []
549
549
  let columnCurrent
@@ -722,17 +722,17 @@ export class NakoLexer {
722
722
  }
723
723
 
724
724
  switch (ruleName) {
725
- case 'def_test': {
726
- isDefTest = true
727
- break
728
- }
729
- case 'eol': { // eolの処理はほかに↑と↓にある
730
- isDefTest = false
731
- break
732
- }
733
- default: {
734
- break
735
- }
725
+ case 'def_test': {
726
+ isDefTest = true
727
+ break
728
+ }
729
+ case 'eol': { // eolの処理はほかに↑と↓にある
730
+ isDefTest = false
731
+ break
732
+ }
733
+ default: {
734
+ break
735
+ }
736
736
  }
737
737
  // ここまで‰(#682) を処理
738
738
  if (ruleName === 'dec_lineno') {
@@ -773,7 +773,7 @@ export class NakoLexer {
773
773
  }
774
774
 
775
775
  // トークン配列をtype文字列に変換
776
- static tokensToTypeStr (tokens: Token[], sep: string) {
776
+ static tokensToTypeStr(tokens: Token[], sep: string) {
777
777
  const a = tokens.map((v) => {
778
778
  return v.type
779
779
  })
@@ -785,7 +785,7 @@ export class NakoLexer {
785
785
  * @param {string} filename
786
786
  * @returns {string}
787
787
  */
788
- static filenameToModName (filename: string) {
788
+ static filenameToModName(filename: string) {
789
789
  if (!filename) { return 'main' }
790
790
  // パスがあればパスを削除
791
791
  filename = filename.replace(/[\\:]/g, '/') // Windowsのpath記号を/に置換
@@ -59,7 +59,7 @@ function stringifyPosition(p) {
59
59
  return `${p.file || ''}${p.line === undefined ? '' : `(${p.line + 1}行目): `}`;
60
60
  }
61
61
  export function parsePosition(line) {
62
- const m = line.match(/^l(\d+)\:(.+)/);
62
+ const m = line.match(/^l(\d+):(.+)/);
63
63
  let lineNo = 0;
64
64
  let fileName = 'main.nako3';
65
65
  if (m) {
@@ -17,23 +17,23 @@ export class LogLevel {
17
17
  public static stdout = 6
18
18
 
19
19
  // string to level no
20
- public static fromS (levelStr: string): number {
20
+ public static fromS(levelStr: string): number {
21
21
  let level: number = LogLevel.trace
22
22
  switch (levelStr) {
23
- case 'all': level = LogLevel.all; break
24
- case 'trace': level = LogLevel.trace; break
25
- case 'debug': level = LogLevel.debug; break
26
- case 'info': level = LogLevel.info; break
27
- case 'warn': level = LogLevel.warn; break
28
- case 'error': level = LogLevel.error; break
29
- case 'stdout': level = LogLevel.stdout; break
30
- default:
31
- throw new Error('[NakoLogger] unknown logger level:' + levelStr)
23
+ case 'all': level = LogLevel.all; break
24
+ case 'trace': level = LogLevel.trace; break
25
+ case 'debug': level = LogLevel.debug; break
26
+ case 'info': level = LogLevel.info; break
27
+ case 'warn': level = LogLevel.warn; break
28
+ case 'error': level = LogLevel.error; break
29
+ case 'stdout': level = LogLevel.stdout; break
30
+ default:
31
+ throw new Error('[NakoLogger] unknown logger level:' + levelStr)
32
32
  }
33
33
  return level
34
34
  }
35
35
 
36
- public static toString (level: number): string {
36
+ public static toString(level: number): string {
37
37
  const levels: string[] = ['all', 'trace', 'debug', 'info', 'warn', 'error', 'stdout']
38
38
  return levels[level]
39
39
  }
@@ -62,13 +62,13 @@ type LogListener = (data: LogListenerData) => void;
62
62
  * エラー位置を日本語で表示する。
63
63
  * たとえば `stringifyPosition({ file: "foo.txt", line: 5 })` は `"foo.txt(6行目):"` を出力する。
64
64
  */
65
- function stringifyPosition (p: PositionOrNull): string {
65
+ function stringifyPosition(p: PositionOrNull): string {
66
66
  if (!p) { return '' }
67
67
  return `${p.file || ''}${p.line === undefined ? '' : `(${p.line + 1}行目): `}`
68
68
  }
69
69
 
70
- export function parsePosition (line: string): Position {
71
- const m = line.match(/^l(\d+)\:(.+)/)
70
+ export function parsePosition(line: string): Position {
71
+ const m = line.match(/^l(\d+):(.+)/)
72
72
  let lineNo = 0
73
73
  let fileName = 'main.nako3'
74
74
  if (m) {
@@ -97,17 +97,17 @@ export class NakoLogger {
97
97
  private listeners: NakoLoggerListener[]
98
98
  private logs: string
99
99
  private position: string
100
- public constructor () {
100
+ public constructor() {
101
101
  this.listeners = []
102
102
  this.logs = ''
103
103
  this.position = ''
104
104
  }
105
105
 
106
- public getErrorLogs (): [string, string] {
106
+ public getErrorLogs(): [string, string] {
107
107
  return [this.logs.replace(/\s+$/, ''), this.position]
108
108
  }
109
109
 
110
- public clear (): void {
110
+ public clear(): void {
111
111
  this.logs = ''
112
112
  this.position = ''
113
113
  }
@@ -117,7 +117,7 @@ export class NakoLogger {
117
117
  * @param levelStr
118
118
  * @param callback
119
119
  */
120
- public addListener (levelStr: string, callback: LogListener): void {
120
+ public addListener(levelStr: string, callback: LogListener): void {
121
121
  const level: number = LogLevel.fromS(levelStr)
122
122
  this.listeners.push({ level, callback })
123
123
  }
@@ -126,7 +126,7 @@ export class NakoLogger {
126
126
  * addListenerメソッドで設定したコールバックを取り外す。
127
127
  * @param {LogListener} callback
128
128
  */
129
- public removeListener (callback: LogListener): void {
129
+ public removeListener(callback: LogListener): void {
130
130
  this.listeners = this.listeners.filter((l) => l.callback !== callback)
131
131
  }
132
132
 
@@ -134,7 +134,7 @@ export class NakoLogger {
134
134
  * @param {string} message
135
135
  * @param {Position | null} position
136
136
  */
137
- public trace (message: string, position: PositionOrNull = null):void {
137
+ public trace(message: string, position: PositionOrNull = null):void {
138
138
  this.sendI(LogLevel.trace, `${NakoColors.color.bold}[デバッグ情報(詳細)]${NakoColors.color.reset}${stringifyPosition(position)}${message}`, position)
139
139
  }
140
140
 
@@ -142,7 +142,7 @@ export class NakoLogger {
142
142
  * @param {string} message
143
143
  * @param {Position | null} position
144
144
  */
145
- public debug (message: string, position: PositionOrNull = null): void {
145
+ public debug(message: string, position: PositionOrNull = null): void {
146
146
  this.sendI(LogLevel.debug, `${NakoColors.color.bold}[デバッグ情報]${NakoColors.color.reset}${stringifyPosition(position)}${message}`, position)
147
147
  }
148
148
 
@@ -150,7 +150,7 @@ export class NakoLogger {
150
150
  * @param {string} message
151
151
  * @param {Position | null} position
152
152
  */
153
- public info (message: string, position: PositionOrNull = null): void {
153
+ public info(message: string, position: PositionOrNull = null): void {
154
154
  this.sendI(LogLevel.info, `${NakoColors.color.bold}${NakoColors.color.blue}[情報]${NakoColors.color.reset}${stringifyPosition(position)}${message}`, position)
155
155
  }
156
156
 
@@ -158,7 +158,7 @@ export class NakoLogger {
158
158
  * @param {string} message
159
159
  * @param {Position | null} position
160
160
  */
161
- public warn (message: string, position: PositionOrNull = null):void {
161
+ public warn(message: string, position: PositionOrNull = null):void {
162
162
  this.sendI(LogLevel.warn, `${NakoColors.color.bold}${NakoColors.color.green}[警告]${NakoColors.color.reset}${stringifyPosition(position)}${message}`, position)
163
163
  }
164
164
 
@@ -166,23 +166,23 @@ export class NakoLogger {
166
166
  * @param {string | Error} message
167
167
  * @param {Position | null} position
168
168
  */
169
- public error (message: string | Error | NakoError, position: PositionOrNull = null):void {
169
+ public error(message: string | Error | NakoError, position: PositionOrNull = null):void {
170
170
  // NakoErrorか判定 (`message instanceof NakoError`では判定できない場合がある)
171
171
  if (message instanceof Error && typeof (message as NakoError).type === 'string') {
172
172
  // NakoErrorか
173
173
  const etype: string = (message as NakoError).type
174
174
  switch (etype) {
175
- case 'NakoRuntimeError':
176
- case 'NakoError':
177
- if (message instanceof NakoError) {
178
- const e: NakoError = message
179
- let pos: any = position
180
- if (pos === null || pos === undefined) {
181
- pos = { file: e.file, line: e.line || 0, startOffset: 0, endOffset: 0 }
182
- }
183
- this.sendI(LogLevel.error, e.message, pos)
184
- return
175
+ case 'NakoRuntimeError':
176
+ case 'NakoError':
177
+ if (message instanceof NakoError) {
178
+ const e: NakoError = message
179
+ let pos: any = position
180
+ if (pos === null || pos === undefined) {
181
+ pos = { file: e.file, line: e.line || 0, startOffset: 0, endOffset: 0 }
185
182
  }
183
+ this.sendI(LogLevel.error, e.message, pos)
184
+ return
185
+ }
186
186
  }
187
187
  }
188
188
  if (message instanceof Error) {
@@ -196,7 +196,7 @@ export class NakoLogger {
196
196
  }
197
197
 
198
198
  /** RuntimeErrorを生成する */
199
- public runtimeError (error: any, posStr: string): NakoRuntimeError {
199
+ public runtimeError(error: any, posStr: string): NakoRuntimeError {
200
200
  const e = new NakoRuntimeError(error, posStr)
201
201
  return e
202
202
  }
@@ -205,18 +205,18 @@ export class NakoLogger {
205
205
  * @param {string} message
206
206
  * @param {Position | null} position
207
207
  */
208
- public stdout (message: string, position: PositionOrNull = null): void {
208
+ public stdout(message: string, position: PositionOrNull = null): void {
209
209
  this.sendI(LogLevel.stdout, `${message}`, position)
210
210
  }
211
211
 
212
212
  /** 指定したlevelのlistenerにメッセージを送る。htmlやbrowserConsoleは無ければnodeConsoleから生成する。 */
213
- public send (levelStr: string, nodeConsole: string, position: PositionOrNull, html: string|null = null, browserConsole: [string, string] | null = null): void {
213
+ public send(levelStr: string, nodeConsole: string, position: PositionOrNull, html: string|null = null, browserConsole: [string, string] | null = null): void {
214
214
  const i = LogLevel.fromS(levelStr)
215
215
  this.sendI(i, nodeConsole, position, html, browserConsole)
216
216
  }
217
217
 
218
218
  /** 指定したlevelのlistenerにメッセージを送る。htmlやbrowserConsoleは無ければnodeConsoleから生成する。 */
219
- public sendI (level: number, nodeConsole: string, position: PositionOrNull, html: string|null = null, browserConsole: [string, string] | null = null): void {
219
+ public sendI(level: number, nodeConsole: string, position: PositionOrNull, html: string|null = null, browserConsole: [string, string] | null = null): void {
220
220
  const makeData = () => {
221
221
  // nodeConsoleからnoColor, nodeCondoleなどの形式を生成する。
222
222
  const formats = NakoColors.convertColorTextFormat(nodeConsole)
@@ -1,4 +1,3 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
1
  /**
3
2
  * nadesiko v3 parser
4
3
  */
@@ -341,7 +340,7 @@ export class NakoParser extends NakoParserBase {
341
340
  else {
342
341
  throw NakoSyntaxError.fromNode('関数の属性の指定が正しくありません。『{』と『}』で囲む必要があります。', def);
343
342
  }
344
- if (funcAttribute != null) {
343
+ if (funcAttribute !== null) {
345
344
  if (funcAttribute.value === '公開') {
346
345
  isExport = true;
347
346
  }
@@ -533,7 +532,7 @@ export class NakoParser extends NakoParserBase {
533
532
  return null;
534
533
  }
535
534
  const mosi = this.get(); // skip もし
536
- if (mosi == null) {
535
+ if (mosi === null) {
537
536
  return null;
538
537
  }
539
538
  while (this.check('comma')) {
@@ -1140,7 +1139,7 @@ export class NakoParser extends NakoParserBase {
1140
1139
  }
1141
1140
  if (vFrom === null || vTo === null) {
1142
1141
  // 『AからBの範囲を繰り返す』構文のとき (#1704)
1143
- if (vFrom == null && vTo && (vTo.type === 'func' && vTo.name === '範囲')) {
1142
+ if (vFrom === null && vTo && (vTo.type === 'func' && vTo.name === '範囲')) {
1144
1143
  // ok
1145
1144
  }
1146
1145
  else {
@@ -1745,7 +1744,7 @@ export class NakoParser extends NakoParserBase {
1745
1744
  this.modName = space;
1746
1745
  }
1747
1746
  const isexport = this.isExportStack.pop();
1748
- if (isexport != null) {
1747
+ if (isexport !== null && isexport !== undefined) {
1749
1748
  this.isExportDefault = isexport;
1750
1749
  }
1751
1750
  }