node/deps/v8/test/intl/segmenter/constructor.js
Michaël Zasso 7b48713334
deps: update V8 to 7.3.492.25
PR-URL: https://github.com/nodejs/node/pull/25852
Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
2019-03-14 18:49:21 +01:00

191 lines
4.1 KiB
JavaScript

// Copyright 2018 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.
// Flags: --harmony-intl-segmenter
// Segmenter constructor can't be called as function.
assertThrows(() => Intl.Segmenter(["sr"]), TypeError);
// Invalid locale string.
assertThrows(() => new Intl.Segmenter(["abcdefghi"]), RangeError);
assertDoesNotThrow(() => new Intl.Segmenter(["sr"], {}), TypeError);
assertDoesNotThrow(() => new Intl.Segmenter([], {}));
assertDoesNotThrow(() => new Intl.Segmenter(["fr", "ar"], {}));
assertDoesNotThrow(() => new Intl.Segmenter({ 0: "ja", 1: "fr" }, {}));
assertDoesNotThrow(() => new Intl.Segmenter({ 1: "ja", 2: "fr" }, {}));
assertDoesNotThrow(() => new Intl.Segmenter(["sr"]));
assertDoesNotThrow(() => new Intl.Segmenter());
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
lineBreakStyle: "strict",
granularity: "grapheme"
})
);
assertDoesNotThrow(
() => new Intl.Segmenter(["sr"], { granularity: "sentence" })
);
assertDoesNotThrow(() => new Intl.Segmenter(["sr"], { granularity: "word" }));
assertDoesNotThrow(
() => new Intl.Segmenter(["sr"], { granularity: "grapheme" })
);
assertThrows(() => new Intl.Segmenter(["sr"], { granularity: "line" }), RangeError);
assertThrows(
() => new Intl.Segmenter(["sr"], { granularity: "standard" }),
RangeError
);
assertDoesNotThrow(
() => new Intl.Segmenter(["sr"], { lineBreakStyle: "normal" })
);
assertDoesNotThrow(
() => new Intl.Segmenter(["sr"], { lineBreakStyle: "strict" })
);
assertDoesNotThrow(
() => new Intl.Segmenter(["sr"], { lineBreakStyle: "loose" })
);
assertDoesNotThrow(
() => new Intl.Segmenter(["sr"], { lineBreakStyle: "giant" })
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "sentence",
lineBreakStyle: "normal"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "sentence",
lineBreakStyle: "strict"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "sentence",
lineBreakStyle: "loose"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "word",
lineBreakStyle: "normal"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "word",
lineBreakStyle: "strict"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "word",
lineBreakStyle: "loose"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "grapheme",
lineBreakStyle: "normal"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "grapheme",
lineBreakStyle: "strict"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "grapheme",
lineBreakStyle: "loose"
})
);
assertThrows(
() =>
new Intl.Segmenter(["sr"], {
granularity: "line",
lineBreakStyle: "loose"
}), RangeError
);
assertThrows(
() =>
new Intl.Segmenter(["sr"], {
granularity: "line",
lineBreakStyle: "normal"
}), RangeError
);
assertThrows(
() =>
new Intl.Segmenter(["sr"], {
granularity: "line",
lineBreakStyle: "strict"
}), RangeError
);
// propagate exception from getter
assertThrows(
() =>
new Intl.Segmenter(undefined, {
get localeMatcher() {
throw new TypeError("");
}
}),
TypeError
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(undefined, {
get lineBreakStyle() {
throw new TypeError("");
}
})
);
assertThrows(
() =>
new Intl.Segmenter(undefined, {
get granularity() {
throw new TypeError("");
}
}),
TypeError
);