Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
6289e0e0
U
uni-app
项目概览
DCloud
/
uni-app
2 个月 前同步成功
通知
717
Star
38705
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6289e0e0
编写于
4月 02, 2022
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(mp): ignore javascript keywords when generate identifier (#3397)
上级
a0551504
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
75 addition
and
4 deletion
+75
-4
packages/uni-mp-compiler/__tests__/identifier.spec.ts
packages/uni-mp-compiler/__tests__/identifier.spec.ts
+3
-2
packages/uni-mp-compiler/src/identifier.ts
packages/uni-mp-compiler/src/identifier.ts
+72
-2
未找到文件。
packages/uni-mp-compiler/__tests__/identifier.spec.ts
浏览文件 @
6289e0e0
...
...
@@ -9,10 +9,11 @@ describe('identifier', () => {
}
expect
(
ids
.
next
()).
toBe
(
'
ab
'
)
expect
(
ids
.
next
()).
toBe
(
'
ac
'
)
// do if in 已被忽略
for
(
let
i
=
0
;
i
<
52
*
52
-
2
;
i
++
)
{
ids
.
next
()
}
expect
(
ids
.
next
()).
toBe
(
'
ac
c
'
)
expect
(
ids
.
next
()).
toBe
(
'
ac
d
'
)
expect
(
ids
.
next
()).
toBe
(
'
ac
f
'
)
expect
(
ids
.
next
()).
toBe
(
'
ac
g
'
)
})
})
packages/uni-mp-compiler/src/identifier.ts
浏览文件 @
6289e0e0
...
...
@@ -3,13 +3,17 @@ export default class IdentifierGenerator {
private
_chars
:
string
=
'
abcdefghijklmnopqrstvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
'
private
_nextIds
:
number
[]
=
[
0
]
next
()
{
next
()
:
string
{
const
r
=
[]
for
(
const
char
of
this
.
_nextIds
)
{
r
.
unshift
(
this
.
_chars
[
char
])
}
this
.
_increment
()
return
r
.
join
(
''
)
const
id
=
r
.
join
(
''
)
if
(
keywords
.
includes
(
id
))
{
return
this
.
next
()
}
return
id
}
_increment
()
{
...
...
@@ -30,3 +34,69 @@ export default class IdentifierGenerator {
}
}
}
const
keywords
=
[
'
abstract
'
,
'
arguments
'
,
'
await
'
,
'
boolean
'
,
'
break
'
,
'
byte
'
,
'
case
'
,
'
catch
'
,
'
char
'
,
'
class
'
,
'
const
'
,
'
continue
'
,
'
debugger
'
,
'
default
'
,
'
delete
'
,
'
do
'
,
'
double
'
,
'
else
'
,
'
enum
'
,
'
eval
'
,
'
export
'
,
'
extends
'
,
'
false
'
,
'
final
'
,
'
finally
'
,
'
float
'
,
'
for
'
,
'
function
'
,
'
goto
'
,
'
if
'
,
'
implements
'
,
'
import
'
,
'
in
'
,
'
instanceof
'
,
'
int
'
,
'
interface
'
,
'
let
'
,
'
long
'
,
'
native
'
,
'
new
'
,
'
null
'
,
'
package
'
,
'
private
'
,
'
protected
'
,
'
public
'
,
'
return
'
,
'
short
'
,
'
static
'
,
'
super
'
,
'
switch
'
,
'
synchronized
'
,
'
this
'
,
'
throw
'
,
'
throws
'
,
'
transient
'
,
'
true
'
,
'
try
'
,
'
typeof
'
,
'
var
'
,
'
void
'
,
'
volatile
'
,
'
while
'
,
'
with
'
,
'
yield
'
,
]
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录