1// Copyright 2014 the V8 project authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5if ("Intl" in this) { 6 function overflow() { 7 return overflow() + 1; 8 } 9 Object.defineProperty = overflow; 10 assertDoesNotThrow(function() { Intl.Collator.supportedLocalesOf("en"); }); 11 12 var date = new Date(Date.UTC(2004, 12, 25, 3, 0, 0)); 13 var options = { 14 weekday: "long", 15 year: "numeric", 16 month: "long", 17 day: "numeric" 18 }; 19 20 Object.apply = overflow; 21 assertDoesNotThrow(function() { date.toLocaleDateString("de-DE", options); }); 22 23 var options_incomplete = {}; 24 assertDoesNotThrow(function() { 25 date.toLocaleDateString("de-DE", options_incomplete); 26 }); 27 assertTrue(options_incomplete.hasOwnProperty("year")); 28 29 assertDoesNotThrow(function() { date.toLocaleDateString("de-DE", undefined); }); 30 assertDoesNotThrow(function() { date.toLocaleDateString("de-DE"); }); 31 assertThrows(function() { date.toLocaleDateString("de-DE", null); }, TypeError); 32} 33