Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell11
提交
d64b12be
D
dragonwell11
项目概览
openanolis
/
dragonwell11
通知
7
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell11
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d64b12be
编写于
3月 03, 2017
作者:
L
lana
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
de447002
1e300ac2
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
120 addition
and
1 deletion
+120
-1
nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java
...e/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java
+27
-1
nashorn/test/script/basic/es6/JDK-8156743.js
nashorn/test/script/basic/es6/JDK-8156743.js
+75
-0
nashorn/test/script/basic/es6/JDK-8156743.js.EXPECTED
nashorn/test/script/basic/es6/JDK-8156743.js.EXPECTED
+18
-0
未找到文件。
nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java
浏览文件 @
d64b12be
/*
* Copyright (c) 2010, 201
5
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2010, 201
7
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -56,6 +56,8 @@ import jdk.nashorn.internal.ir.debug.JSONWriter;
import
jdk.nashorn.internal.objects.AbstractIterator
;
import
jdk.nashorn.internal.objects.Global
;
import
jdk.nashorn.internal.objects.NativeObject
;
import
jdk.nashorn.internal.objects.NativeJava
;
import
jdk.nashorn.internal.objects.NativeArray
;
import
jdk.nashorn.internal.parser.Lexer
;
import
jdk.nashorn.internal.runtime.arrays.ArrayIndex
;
import
jdk.nashorn.internal.runtime.linker.Bootstrap
;
...
...
@@ -398,6 +400,30 @@ public final class ScriptRuntime {
if
(
itr
!=
null
)
{
return
itr
;
}
if
(
obj
instanceof
Map
)
{
return
new
Iterator
<
Object
>()
{
private
Iterator
<?>
iter
=
((
Map
<?,?>)
obj
).
entrySet
().
iterator
();
@Override
public
boolean
hasNext
()
{
return
iter
.
hasNext
();
}
@Override
public
Object
next
()
{
Map
.
Entry
<?,?>
next
=
(
Map
.
Entry
)
iter
.
next
();
Object
[]
keyvalue
=
new
Object
[]{
next
.
getKey
(),
next
.
getValue
()};
NativeArray
array
=
NativeJava
.
from
(
null
,
keyvalue
);
return
array
;
}
@Override
public
void
remove
()
{
iter
.
remove
();
}
};
}
}
final
Global
global
=
Global
.
instance
();
...
...
nashorn/test/script/basic/es6/JDK-8156743.js
0 → 100644
浏览文件 @
d64b12be
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**
* JDK-8156743: ES6 for..of should work for Java Maps and Sets
*
* @test
* @run
* @option --language=es6
*/
var
map
=
new
Map
([
[
1
,
'
one
'
],
[
2
,
'
two
'
],
[
3
,
'
three
'
]
]);
var
set
=
new
Set
([
'
red
'
,
'
green
'
,
'
blue
'
]);
var
HashMap
=
Java
.
type
(
"
java.util.HashMap
"
);
var
jmap
=
new
HashMap
();
jmap
.
put
(
1
,
'
one
'
);
jmap
.
put
(
2
,
'
two
'
);
jmap
.
put
(
3
,
'
three
'
);
var
HashSet
=
Java
.
type
(
"
java.util.HashSet
"
);
var
jset
=
new
HashSet
();
jset
.
add
(
'
red
'
);
jset
.
add
(
'
green
'
);
jset
.
add
(
'
blue
'
);
for
(
var
keyvalue
of
map
){
print
(
keyvalue
[
0
],
keyvalue
[
1
]);
}
for
(
var
keyvalue
of
jmap
){
print
(
keyvalue
[
0
],
keyvalue
[
1
]);
}
for
(
var
keyvalue
of
map
){
print
(
keyvalue
);
}
for
(
var
keyvalue
of
jmap
){
print
(
keyvalue
);
}
for
(
var
element
of
set
){
print
(
element
);
}
for
(
var
element
of
jset
){
print
(
element
);
}
nashorn/test/script/basic/es6/JDK-8156743.js.EXPECTED
0 → 100644
浏览文件 @
d64b12be
1 one
2 two
3 three
1 one
2 two
3 three
1,one
2,two
3,three
1,one
2,two
3,three
red
green
blue
red
green
blue
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录