1/* 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16/* 17 * @tc.name:intl 18 * @tc.desc:test Internationalization API 19 * @tc.type: FUNC 20 * @tc.require: issueI5NO8G 21 */ 22try { 23 const proto = this.Intl.NumberFormat.prototype; 24 proto.resolvedOptions(); 25} catch (err) { 26 print(err instanceof TypeError); 27} 28 29try { 30 const proto = this.Intl.DateTimeFormat.prototype; 31 proto.resolvedOptions(); 32} catch (err) { 33 print(err instanceof TypeError); 34} 35 36{ 37 let noThrow = true; 38 try { 39 new Intl.DateTimeFormat("en", { numberingSystem: "invalid" }); 40 } catch (e) { 41 noThrow = false; 42 } 43 print(noThrow); 44} 45 46{ 47 let constructors = [ 48 {c: Intl.DateTimeFormat, f: "format"}, 49 {c: Intl.NumberFormat, f: "format"}, 50 ]; 51 52 for (let {c, f} of constructors) { 53 let o = Object.create(c.prototype); 54 print(o instanceof c); 55 print(o == c.call(o)); 56 print(o[f] == o[f]); 57 print(o instanceof c); 58 } 59} 60 61{ 62 try { 63 const proto = this.Intl.Collator.prototype; 64 proto.resolvedOptions(); 65 } catch (err) { 66 print(err instanceof TypeError); 67 } 68}