| // 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. |
| |
| if ("Intl" in this) { |
| function overflow() { |
| return overflow() + 1; |
| } |
| Object.defineProperty = overflow; |
| assertDoesNotThrow(function() { Intl.Collator.supportedLocalesOf("en"); }); |
| |
| var date = new Date(Date.UTC(2004, 12, 25, 3, 0, 0)); |
| var options = { |
| weekday: "long", |
| year: "numeric", |
| month: "long", |
| day: "numeric" |
| }; |
| |
| Object.apply = overflow; |
| assertDoesNotThrow(function() { date.toLocaleDateString("de-DE", options); }); |
| |
| var options_incomplete = {}; |
| assertDoesNotThrow(function() { |
| date.toLocaleDateString("de-DE", options_incomplete); |
| }); |
| assertFalse(options_incomplete.hasOwnProperty("year")); |
| |
| assertDoesNotThrow(function() { date.toLocaleDateString("de-DE", undefined); }); |
| assertDoesNotThrow(function() { date.toLocaleDateString("de-DE"); }); |
| assertThrows(function() { date.toLocaleDateString("de-DE", null); }, TypeError); |
| } |