aboutsummaryrefslogtreecommitdiff
path: root/src/jdk/nashorn/internal/objects
diff options
context:
space:
mode:
authorhannesw <none@none>2013-09-27 17:00:37 +0200
committerhannesw <none@none>2013-09-27 17:00:37 +0200
commit715135a0b1ac6f0ced2deaeb597ba7a4d1dc6d3b (patch)
treee99a659c55e277d303535a0e237516a38ba912cf /src/jdk/nashorn/internal/objects
parent2b9a82d64cbeb15c17481fe0271eb647710567dd (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.java7
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;