Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wk1234123
uni-app
提交
cd5c3cdd
uni-app
项目概览
wk1234123
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
cd5c3cdd
编写于
7月 28, 2020
作者:
Q
qiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: 修复小程序端for循环中复杂表达式报错的问题 question/102443
上级
9346f034
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
32 deletion
+10
-32
packages/uni-template-compiler/lib/script/traverse/member-expr.js
.../uni-template-compiler/lib/script/traverse/member-expr.js
+10
-32
未找到文件。
packages/uni-template-compiler/lib/script/traverse/member-expr.js
浏览文件 @
cd5c3cdd
...
...
@@ -4,15 +4,6 @@ function isMatch (name, forItem, forIndex) {
return
name
===
forItem
||
name
===
forIndex
}
function
getIdentifierName
(
element
)
{
if
(
t
.
isMemberExpression
(
element
))
{
return
getIdentifierName
(
element
.
object
)
}
else
if
(
t
.
isCallExpression
(
element
))
{
return
getIdentifierName
(
element
.
callee
)
}
return
element
.
name
&&
element
.
name
.
split
(
'
.
'
)[
0
]
}
function
findScoped
(
path
,
state
)
{
if
(
!
path
)
{
return
state
...
...
@@ -23,30 +14,17 @@ function findScoped (path, state) {
forIndex
}
=
scoped
let
match
=
false
if
(
path
.
isIdentifier
()
||
path
.
isMemberExpression
())
{
match
=
isMatch
(
getIdentifierName
(
path
.
node
),
forItem
,
forIndex
)
}
else
{
path
.
traverse
({
noScope
:
true
,
Identifier
(
path
)
{
if
(
!
match
)
{
match
=
isMatch
(
path
.
node
.
name
,
forItem
,
forIndex
)
if
(
match
)
{
path
.
stop
()
}
}
},
MemberExpression
(
path
)
{
if
(
!
match
)
{
match
=
isMatch
(
getIdentifierName
(
path
.
node
),
forItem
,
forIndex
)
if
(
match
)
{
path
.
stop
()
}
path
.
skip
()
path
.
traverse
({
noScope
:
true
,
Identifier
(
path
)
{
if
(
!
match
&&
path
.
key
!==
'
key
'
&&
(
path
.
key
!==
'
property
'
||
path
.
parent
.
computed
))
{
match
=
isMatch
(
path
.
node
.
name
,
forItem
,
forIndex
)
if
(
match
)
{
path
.
stop
()
}
}
}
)
}
}
}
)
return
match
})
if
(
!
scoped
&&
state
.
scoped
.
length
>
1
)
{
...
...
@@ -75,4 +53,4 @@ module.exports = function getMemberExpr (path, name, init, state, variableDeclar
const
contextIdentifier
=
t
.
identifier
(
scoped
.
context
)
contextIdentifier
.
$mpProcessed
=
true
return
t
.
memberExpression
(
contextIdentifier
,
identifier
)
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录