| // Copyright 2014 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| (function() { |
| function store(x) { x[0] = 0; } |
| store([]); |
| var c = /x/; |
| store(c); |
| function get_hole() { |
| var b = /x/; |
| store(b); |
| return b[1]; |
| } |
| assertEquals(undefined, get_hole()); |
| assertEquals(undefined, get_hole()); |
| })(); |
| |
| (function() { |
| function store(x) { x[0] = 0; } |
| store([]); |
| var c = new Date(); |
| store(c); |
| function get_hole() { |
| var b = new Date(); |
| store(b); |
| return b[1]; |
| } |
| assertEquals(undefined, get_hole()); |
| assertEquals(undefined, get_hole()); |
| })(); |
| |
| (function() { |
| function store(x) { x[0] = 0; } |
| store([]); |
| var c = new Number(1); |
| store(c); |
| function get_hole() { |
| var b = new Number(1); |
| store(b); |
| return b[1]; |
| } |
| assertEquals(undefined, get_hole()); |
| assertEquals(undefined, get_hole()); |
| })(); |
| |
| (function() { |
| function store(x) { x[0] = 0; } |
| store([]); |
| var c = new Boolean(); |
| store(c); |
| function get_hole() { |
| var b = new Boolean(); |
| store(b); |
| return b[1]; |
| } |
| assertEquals(undefined, get_hole()); |
| assertEquals(undefined, get_hole()); |
| })(); |
| |
| (function() { |
| function store(x) { x[0] = 0; } |
| store([]); |
| var c = new Map(); |
| store(c); |
| function get_hole() { |
| var b = new Map(); |
| store(b); |
| return b[1]; |
| } |
| assertEquals(undefined, get_hole()); |
| assertEquals(undefined, get_hole()); |
| })(); |
| |
| (function() { |
| function store(x) { x[0] = 0; } |
| store([]); |
| var c = new Set(); |
| store(c); |
| function get_hole() { |
| var b = new Set(); |
| store(b); |
| return b[1]; |
| } |
| assertEquals(undefined, get_hole()); |
| assertEquals(undefined, get_hole()); |
| })(); |
| |
| (function() { |
| function store(x) { x[0] = 0; } |
| store([]); |
| var c = new WeakMap(); |
| store(c); |
| function get_hole() { |
| var b = new WeakMap(); |
| store(b); |
| return b[1]; |
| } |
| assertEquals(undefined, get_hole()); |
| assertEquals(undefined, get_hole()); |
| })(); |
| |
| (function() { |
| function store(x) { x[0] = 0; } |
| store([]); |
| var c = new WeakSet(); |
| store(c); |
| function get_hole() { |
| var b = new WeakSet(); |
| store(b); |
| return b[1]; |
| } |
| assertEquals(undefined, get_hole()); |
| assertEquals(undefined, get_hole()); |
| })(); |