~ubuntu-branches/ubuntu/saucy/mozjs17/saucy

« back to all changes in this revision

Viewing changes to js/src/tests/ecma_5/strict/15.4.4.9.js

  • Committer: Package Import Robot
  • Author(s): Rico Tzschichholz
  • Date: 2013-05-25 12:24:23 UTC
  • Revision ID: package-import@ubuntu.com-20130525122423-zmxucrhtensw90xy
Tags: upstream-17.0.0
ImportĀ upstreamĀ versionĀ 17.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 
2
 
 
3
/*
 
4
 * Any copyright is dedicated to the Public Domain.
 
5
 * http://creativecommons.org/licenses/publicdomain/
 
6
 */
 
7
 
 
8
function arr() {
 
9
  return Object.defineProperty([10, 20, 30], 0, {writable: false});
 
10
}
 
11
 
 
12
function obj() {
 
13
  var o = {0: 10, 1: 20, 2: 30, length: 3};
 
14
  Object.defineProperty(o, 0, {writable: false});
 
15
  return o;
 
16
}
 
17
 
 
18
assertEq(testLenientAndStrict('var a = arr(); [a.shift(), a]',
 
19
                              raisesException(TypeError),
 
20
                              raisesException(TypeError)),
 
21
         true);
 
22
 
 
23
assertEq(testLenientAndStrict('var o = obj(); [Array.prototype.shift.call(o), o]',
 
24
                              raisesException(TypeError),
 
25
                              raisesException(TypeError)),
 
26
         true);
 
27
 
 
28
function agap() {
 
29
  var a = [1, 2, , 4];
 
30
  Object.defineProperty(a, 1, {configurable: false});
 
31
  return a;
 
32
}
 
33
 
 
34
function ogap() {
 
35
  var o = {0: 1, 1: 2, /* no 2 */ 3: 4, length: 4};
 
36
  Object.defineProperty(o, 1, {configurable: false});
 
37
  return o;
 
38
}
 
39
 
 
40
assertEq(testLenientAndStrict('var a = agap(); [a.shift(), a]',
 
41
                              raisesException(TypeError),
 
42
                              raisesException(TypeError)),
 
43
         true);
 
44
 
 
45
assertEq(testLenientAndStrict('var o = ogap(); [Array.prototype.shift.call(o), o]',
 
46
                              raisesException(TypeError),
 
47
                              raisesException(TypeError)),
 
48
         true);
 
49
 
 
50
reportCompare(true, true);