| // Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| // If canonicalization uses deep structural hashing without memoizing, this |
| // will exhibit superlinear time. |
| |
| const list1_0 = <Object?>[null, null]; |
| const list1_1 = <Object?>[list1_0, list1_0]; |
| const list1_2 = <Object?>[list1_1, list1_1]; |
| const list1_3 = <Object?>[list1_2, list1_2]; |
| const list1_4 = <Object?>[list1_3, list1_3]; |
| const list1_5 = <Object?>[list1_4, list1_4]; |
| const list1_6 = <Object?>[list1_5, list1_5]; |
| const list1_7 = <Object?>[list1_6, list1_6]; |
| const list1_8 = <Object?>[list1_7, list1_7]; |
| const list1_9 = <Object?>[list1_8, list1_8]; |
| const list1_10 = <Object?>[list1_9, list1_9]; |
| const list1_11 = <Object?>[list1_10, list1_10]; |
| const list1_12 = <Object?>[list1_11, list1_11]; |
| const list1_13 = <Object?>[list1_12, list1_12]; |
| const list1_14 = <Object?>[list1_13, list1_13]; |
| const list1_15 = <Object?>[list1_14, list1_14]; |
| const list1_16 = <Object?>[list1_15, list1_15]; |
| const list1_17 = <Object?>[list1_16, list1_16]; |
| const list1_18 = <Object?>[list1_17, list1_17]; |
| const list1_19 = <Object?>[list1_18, list1_18]; |
| const list1_20 = <Object?>[list1_19, list1_19]; |
| const list1_21 = <Object?>[list1_20, list1_20]; |
| const list1_22 = <Object?>[list1_21, list1_21]; |
| const list1_23 = <Object?>[list1_22, list1_22]; |
| const list1_24 = <Object?>[list1_23, list1_23]; |
| const list1_25 = <Object?>[list1_24, list1_24]; |
| const list1_26 = <Object?>[list1_25, list1_25]; |
| const list1_27 = <Object?>[list1_26, list1_26]; |
| const list1_28 = <Object?>[list1_27, list1_27]; |
| const list1_29 = <Object?>[list1_28, list1_28]; |
| const list1_30 = <Object?>[list1_29, list1_29]; |
| const list1_31 = <Object?>[list1_30, list1_30]; |
| const list1_32 = <Object?>[list1_31, list1_31]; |
| const list1_33 = <Object?>[list1_32, list1_32]; |
| const list1_34 = <Object?>[list1_33, list1_33]; |
| const list1_35 = <Object?>[list1_34, list1_34]; |
| const list1_36 = <Object?>[list1_35, list1_35]; |
| const list1_37 = <Object?>[list1_36, list1_36]; |
| const list1_38 = <Object?>[list1_37, list1_37]; |
| const list1_39 = <Object?>[list1_38, list1_38]; |
| const list1_40 = <Object?>[list1_39, list1_39]; |
| const list1_41 = <Object?>[list1_40, list1_40]; |
| const list1_42 = <Object?>[list1_41, list1_41]; |
| const list1_43 = <Object?>[list1_42, list1_42]; |
| const list1_44 = <Object?>[list1_43, list1_43]; |
| const list1_45 = <Object?>[list1_44, list1_44]; |
| const list1_46 = <Object?>[list1_45, list1_45]; |
| const list1_47 = <Object?>[list1_46, list1_46]; |
| const list1_48 = <Object?>[list1_47, list1_47]; |
| const list1_49 = <Object?>[list1_48, list1_48]; |
| const list1_50 = <Object?>[list1_49, list1_49]; |
| const list1_51 = <Object?>[list1_50, list1_50]; |
| const list1_52 = <Object?>[list1_51, list1_51]; |
| const list1_53 = <Object?>[list1_52, list1_52]; |
| const list1_54 = <Object?>[list1_53, list1_53]; |
| const list1_55 = <Object?>[list1_54, list1_54]; |
| const list1_56 = <Object?>[list1_55, list1_55]; |
| const list1_57 = <Object?>[list1_56, list1_56]; |
| const list1_58 = <Object?>[list1_57, list1_57]; |
| const list1_59 = <Object?>[list1_58, list1_58]; |
| const list1_60 = <Object?>[list1_59, list1_59]; |
| const list1_61 = <Object?>[list1_60, list1_60]; |
| const list1_62 = <Object?>[list1_61, list1_61]; |
| const list1_63 = <Object?>[list1_62, list1_62]; |
| const list1_64 = <Object?>[list1_63, list1_63]; |
| const list1_65 = <Object?>[list1_64, list1_64]; |
| const list1_66 = <Object?>[list1_65, list1_65]; |
| const list1_67 = <Object?>[list1_66, list1_66]; |
| const list1_68 = <Object?>[list1_67, list1_67]; |
| const list1_69 = <Object?>[list1_68, list1_68]; |
| const list1_70 = <Object?>[list1_69, list1_69]; |
| const list1_71 = <Object?>[list1_70, list1_70]; |
| const list1_72 = <Object?>[list1_71, list1_71]; |
| const list1_73 = <Object?>[list1_72, list1_72]; |
| const list1_74 = <Object?>[list1_73, list1_73]; |
| const list1_75 = <Object?>[list1_74, list1_74]; |
| const list1_76 = <Object?>[list1_75, list1_75]; |
| const list1_77 = <Object?>[list1_76, list1_76]; |
| const list1_78 = <Object?>[list1_77, list1_77]; |
| const list1_79 = <Object?>[list1_78, list1_78]; |
| const list1_80 = <Object?>[list1_79, list1_79]; |
| const list1_81 = <Object?>[list1_80, list1_80]; |
| const list1_82 = <Object?>[list1_81, list1_81]; |
| const list1_83 = <Object?>[list1_82, list1_82]; |
| const list1_84 = <Object?>[list1_83, list1_83]; |
| const list1_85 = <Object?>[list1_84, list1_84]; |
| const list1_86 = <Object?>[list1_85, list1_85]; |
| const list1_87 = <Object?>[list1_86, list1_86]; |
| const list1_88 = <Object?>[list1_87, list1_87]; |
| const list1_89 = <Object?>[list1_88, list1_88]; |
| const list1_90 = <Object?>[list1_89, list1_89]; |
| const list1_91 = <Object?>[list1_90, list1_90]; |
| const list1_92 = <Object?>[list1_91, list1_91]; |
| const list1_93 = <Object?>[list1_92, list1_92]; |
| const list1_94 = <Object?>[list1_93, list1_93]; |
| const list1_95 = <Object?>[list1_94, list1_94]; |
| const list1_96 = <Object?>[list1_95, list1_95]; |
| const list1_97 = <Object?>[list1_96, list1_96]; |
| const list1_98 = <Object?>[list1_97, list1_97]; |
| const list1_99 = <Object?>[list1_98, list1_98]; |
| |
| const list2_0 = <Object?>[null, null]; |
| const list2_1 = <Object?>[list2_0, list2_0]; |
| const list2_2 = <Object?>[list2_1, list2_1]; |
| const list2_3 = <Object?>[list2_2, list2_2]; |
| const list2_4 = <Object?>[list2_3, list2_3]; |
| const list2_5 = <Object?>[list2_4, list2_4]; |
| const list2_6 = <Object?>[list2_5, list2_5]; |
| const list2_7 = <Object?>[list2_6, list2_6]; |
| const list2_8 = <Object?>[list2_7, list2_7]; |
| const list2_9 = <Object?>[list2_8, list2_8]; |
| const list2_10 = <Object?>[list2_9, list2_9]; |
| const list2_11 = <Object?>[list2_10, list2_10]; |
| const list2_12 = <Object?>[list2_11, list2_11]; |
| const list2_13 = <Object?>[list2_12, list2_12]; |
| const list2_14 = <Object?>[list2_13, list2_13]; |
| const list2_15 = <Object?>[list2_14, list2_14]; |
| const list2_16 = <Object?>[list2_15, list2_15]; |
| const list2_17 = <Object?>[list2_16, list2_16]; |
| const list2_18 = <Object?>[list2_17, list2_17]; |
| const list2_19 = <Object?>[list2_18, list2_18]; |
| const list2_20 = <Object?>[list2_19, list2_19]; |
| const list2_21 = <Object?>[list2_20, list2_20]; |
| const list2_22 = <Object?>[list2_21, list2_21]; |
| const list2_23 = <Object?>[list2_22, list2_22]; |
| const list2_24 = <Object?>[list2_23, list2_23]; |
| const list2_25 = <Object?>[list2_24, list2_24]; |
| const list2_26 = <Object?>[list2_25, list2_25]; |
| const list2_27 = <Object?>[list2_26, list2_26]; |
| const list2_28 = <Object?>[list2_27, list2_27]; |
| const list2_29 = <Object?>[list2_28, list2_28]; |
| const list2_30 = <Object?>[list2_29, list2_29]; |
| const list2_31 = <Object?>[list2_30, list2_30]; |
| const list2_32 = <Object?>[list2_31, list2_31]; |
| const list2_33 = <Object?>[list2_32, list2_32]; |
| const list2_34 = <Object?>[list2_33, list2_33]; |
| const list2_35 = <Object?>[list2_34, list2_34]; |
| const list2_36 = <Object?>[list2_35, list2_35]; |
| const list2_37 = <Object?>[list2_36, list2_36]; |
| const list2_38 = <Object?>[list2_37, list2_37]; |
| const list2_39 = <Object?>[list2_38, list2_38]; |
| const list2_40 = <Object?>[list2_39, list2_39]; |
| const list2_41 = <Object?>[list2_40, list2_40]; |
| const list2_42 = <Object?>[list2_41, list2_41]; |
| const list2_43 = <Object?>[list2_42, list2_42]; |
| const list2_44 = <Object?>[list2_43, list2_43]; |
| const list2_45 = <Object?>[list2_44, list2_44]; |
| const list2_46 = <Object?>[list2_45, list2_45]; |
| const list2_47 = <Object?>[list2_46, list2_46]; |
| const list2_48 = <Object?>[list2_47, list2_47]; |
| const list2_49 = <Object?>[list2_48, list2_48]; |
| const list2_50 = <Object?>[list2_49, list2_49]; |
| const list2_51 = <Object?>[list2_50, list2_50]; |
| const list2_52 = <Object?>[list2_51, list2_51]; |
| const list2_53 = <Object?>[list2_52, list2_52]; |
| const list2_54 = <Object?>[list2_53, list2_53]; |
| const list2_55 = <Object?>[list2_54, list2_54]; |
| const list2_56 = <Object?>[list2_55, list2_55]; |
| const list2_57 = <Object?>[list2_56, list2_56]; |
| const list2_58 = <Object?>[list2_57, list2_57]; |
| const list2_59 = <Object?>[list2_58, list2_58]; |
| const list2_60 = <Object?>[list2_59, list2_59]; |
| const list2_61 = <Object?>[list2_60, list2_60]; |
| const list2_62 = <Object?>[list2_61, list2_61]; |
| const list2_63 = <Object?>[list2_62, list2_62]; |
| const list2_64 = <Object?>[list2_63, list2_63]; |
| const list2_65 = <Object?>[list2_64, list2_64]; |
| const list2_66 = <Object?>[list2_65, list2_65]; |
| const list2_67 = <Object?>[list2_66, list2_66]; |
| const list2_68 = <Object?>[list2_67, list2_67]; |
| const list2_69 = <Object?>[list2_68, list2_68]; |
| const list2_70 = <Object?>[list2_69, list2_69]; |
| const list2_71 = <Object?>[list2_70, list2_70]; |
| const list2_72 = <Object?>[list2_71, list2_71]; |
| const list2_73 = <Object?>[list2_72, list2_72]; |
| const list2_74 = <Object?>[list2_73, list2_73]; |
| const list2_75 = <Object?>[list2_74, list2_74]; |
| const list2_76 = <Object?>[list2_75, list2_75]; |
| const list2_77 = <Object?>[list2_76, list2_76]; |
| const list2_78 = <Object?>[list2_77, list2_77]; |
| const list2_79 = <Object?>[list2_78, list2_78]; |
| const list2_80 = <Object?>[list2_79, list2_79]; |
| const list2_81 = <Object?>[list2_80, list2_80]; |
| const list2_82 = <Object?>[list2_81, list2_81]; |
| const list2_83 = <Object?>[list2_82, list2_82]; |
| const list2_84 = <Object?>[list2_83, list2_83]; |
| const list2_85 = <Object?>[list2_84, list2_84]; |
| const list2_86 = <Object?>[list2_85, list2_85]; |
| const list2_87 = <Object?>[list2_86, list2_86]; |
| const list2_88 = <Object?>[list2_87, list2_87]; |
| const list2_89 = <Object?>[list2_88, list2_88]; |
| const list2_90 = <Object?>[list2_89, list2_89]; |
| const list2_91 = <Object?>[list2_90, list2_90]; |
| const list2_92 = <Object?>[list2_91, list2_91]; |
| const list2_93 = <Object?>[list2_92, list2_92]; |
| const list2_94 = <Object?>[list2_93, list2_93]; |
| const list2_95 = <Object?>[list2_94, list2_94]; |
| const list2_96 = <Object?>[list2_95, list2_95]; |
| const list2_97 = <Object?>[list2_96, list2_96]; |
| const list2_98 = <Object?>[list2_97, list2_97]; |
| const list2_99 = <Object?>[list2_98, list2_98]; |
| |
| confuse(x) { |
| try { throw x; } catch (e) { return e; } |
| } |
| |
| main() { |
| if (!identical(confuse(list1_99), confuse(list2_99))) { |
| throw new Exception("list1_99 !== list2_99"); |
| } |
| } |