diff options
author | hannesw <none@none> | 2013-09-27 17:00:37 +0200 |
---|---|---|
committer | hannesw <none@none> | 2013-09-27 17:00:37 +0200 |
commit | 715135a0b1ac6f0ced2deaeb597ba7a4d1dc6d3b (patch) | |
tree | e99a659c55e277d303535a0e237516a38ba912cf /src/jdk/nashorn/internal/objects | |
parent | 2b9a82d64cbeb15c17481fe0271eb647710567dd (diff) |
8025520: Array.prototype.slice should only copy defined elements
Reviewed-by: sundar, lagergren
Diffstat (limited to 'src/jdk/nashorn/internal/objects')
-rw-r--r-- | src/jdk/nashorn/internal/objects/NativeArray.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/jdk/nashorn/internal/objects/NativeArray.java b/src/jdk/nashorn/internal/objects/NativeArray.java index 8cb1ded9..0cdc13a5 100644 --- a/src/jdk/nashorn/internal/objects/NativeArray.java +++ b/src/jdk/nashorn/internal/objects/NativeArray.java @@ -860,9 +860,12 @@ public final class NativeArray extends ScriptObject { return new NativeArray(sobj.getArray().slice(k, finale)); } - final NativeArray copy = new NativeArray(0); + // Construct array with proper length to have a deleted filter on undefined elements + final NativeArray copy = new NativeArray(finale - k); for (long n = 0; k < finale; n++, k++) { - copy.defineOwnProperty(ArrayIndex.getArrayIndex(n), sobj.get(k)); + if (sobj.has(k)) { + copy.defineOwnProperty(ArrayIndex.getArrayIndex(n), sobj.get(k)); + } } return copy; |