// Copyright 2016 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.// Calling Intl methods with a bad receiver throws a TypeError// An uninitialized object of the same typeassertThrows(()=>Object.create(Intl.DateTimeFormat.prototype).format(),TypeError);assertThrows(()=>Object.create(Intl.NumberFormat.prototype).format(),TypeError);assertThrows(()=>Object.create(Intl.Collator.prototype).compare(),TypeError);assertThrows(()=>Object.create(Intl.v8BreakIterator.prototype).adoptText(),TypeError);assertThrows(()=>Object.create(Intl.v8BreakIterator.prototype).first(),TypeError);assertThrows(()=>Object.create(Intl.v8BreakIterator.prototype).next(),TypeError);assertThrows(()=>Object.create(Intl.v8BreakIterator.prototype).current(),TypeError);assertThrows(()=>Object.create(Intl.v8BreakIterator.prototype).breakType(),TypeError);// Or similarly, just accessing the method getter on the prototypeassertThrows(()=>Intl.DateTimeFormat.prototype.format,TypeError);assertThrows(()=>Intl.NumberFormat.prototype.format,TypeError);assertThrows(()=>Intl.Collator.prototype.compare,TypeError);assertThrows(()=>Intl.v8BreakIterator.prototype.adoptText,TypeError);assertThrows(()=>Intl.v8BreakIterator.prototype.first,TypeError);assertThrows(()=>Intl.v8BreakIterator.prototype.next,TypeError);assertThrows(()=>Intl.v8BreakIterator.prototype.current,TypeError);assertThrows(()=>Intl.v8BreakIterator.prototype.breakType,TypeError);// The method .call'd on a different instance will have that// other instance benignly ignored, since it's a bound functionletnf=Intl.NumberFormat();letdf=Intl.DateTimeFormat();assertEquals("0",nf.format.call(df,0));