summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/built-ins/Date/UTC/overflow-make-time.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/built-ins/Date/UTC/overflow-make-time.js')
-rw-r--r--js/src/tests/test262/built-ins/Date/UTC/overflow-make-time.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/Date/UTC/overflow-make-time.js b/js/src/tests/test262/built-ins/Date/UTC/overflow-make-time.js
new file mode 100644
index 0000000000..db975cd160
--- /dev/null
+++ b/js/src/tests/test262/built-ins/Date/UTC/overflow-make-time.js
@@ -0,0 +1,37 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-date.utc
+description: Values specified to MakeTime exceed their time boundaries
+info: |
+ [...]
+ 9. Return TimeClip(MakeDate(MakeDay(yr, m, dt), MakeTime(h, min, s, milli))).
+
+ MakeTime (hour, min, sec, ms)
+
+ 1. If hour is not finite or min is not finite or sec is not finite or ms is
+ not finite, return NaN.
+ 2. Let h be ToInteger(hour).
+ 3. Let m be ToInteger(min).
+ 4. Let s be ToInteger(sec).
+ 5. Let milli be ToInteger(ms).
+ 6. Let t be h * msPerHour + m * msPerMinute + s * msPerSecond + milli,
+ performing the arithmetic according to IEEE 754-2008 rules (that is, as if
+ using the ECMAScript operators * and +).
+ 7. Return t.
+---*/
+
+assert.sameValue(Date.UTC(2016, 6, 5, -1), 1467673200000, 'hour: -1');
+assert.sameValue(Date.UTC(2016, 6, 5, 24), 1467763200000, 'hour: 24');
+assert.sameValue(Date.UTC(2016, 6, 5, 0, -1), 1467676740000, 'minute: -1');
+assert.sameValue(Date.UTC(2016, 6, 5, 0, 60), 1467680400000, 'minute: 60');
+assert.sameValue(Date.UTC(2016, 6, 5, 0, 0, -1), 1467676799000, 'second: -1');
+assert.sameValue(Date.UTC(2016, 6, 5, 0, 0, 60), 1467676860000, 'second: 60');
+assert.sameValue(
+ Date.UTC(2016, 6, 5, 0, 0, 0, -1), 1467676799999, 'millisecond: -1'
+);
+assert.sameValue(
+ Date.UTC(2016, 6, 5, 0, 0, 0, 1000), 1467676801000, 'millisecond: 1000'
+);
+
+reportCompare(0, 0);