OLD | NEW |
1 # Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 # Copyright 2006-2009 the V8 project authors. All rights reserved. |
2 # Redistribution and use in source and binary forms, with or without | 2 # Redistribution and use in source and binary forms, with or without |
3 # modification, are permitted provided that the following conditions are | 3 # modification, are permitted provided that the following conditions are |
4 # met: | 4 # met: |
5 # | 5 # |
6 # * Redistributions of source code must retain the above copyright | 6 # * Redistributions of source code must retain the above copyright |
7 # notice, this list of conditions and the following disclaimer. | 7 # notice, this list of conditions and the following disclaimer. |
8 # * Redistributions in binary form must reproduce the above | 8 # * Redistributions in binary form must reproduce the above |
9 # copyright notice, this list of conditions and the following | 9 # copyright notice, this list of conditions and the following |
10 # disclaimer in the documentation and/or other materials provided | 10 # disclaimer in the documentation and/or other materials provided |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 # Constants used on an array to implement the properties of the RegExp object. | 133 # Constants used on an array to implement the properties of the RegExp object. |
134 const REGEXP_NUMBER_OF_CAPTURES = 0; | 134 const REGEXP_NUMBER_OF_CAPTURES = 0; |
135 const REGEXP_FIRST_CAPTURE = 3; | 135 const REGEXP_FIRST_CAPTURE = 3; |
136 | 136 |
137 # We can't put macros in macros so we use constants here. | 137 # We can't put macros in macros so we use constants here. |
138 # REGEXP_NUMBER_OF_CAPTURES | 138 # REGEXP_NUMBER_OF_CAPTURES |
139 macro NUMBER_OF_CAPTURES(array) = ((array)[0]); | 139 macro NUMBER_OF_CAPTURES(array) = ((array)[0]); |
140 | 140 |
141 # Limit according to ECMA 262 15.9.1.1 | 141 # Limit according to ECMA 262 15.9.1.1 |
142 const MAX_TIME_MS = 8640000000000000; | 142 const MAX_TIME_MS = 8640000000000000; |
| 143 # Limit which is MAX_TIME_MS + msPerMonth. |
| 144 const MAX_TIME_BEFORE_UTC = 8640002592000000; |
143 | 145 |
144 # Gets the value of a Date object. If arg is not a Date object | 146 # Gets the value of a Date object. If arg is not a Date object |
145 # a type error is thrown. | 147 # a type error is thrown. |
146 macro DATE_VALUE(arg) = (%_ClassOf(arg) === 'Date' ? %_ValueOf(arg) : ThrowDateT
ypeError()); | 148 macro DATE_VALUE(arg) = (%_ClassOf(arg) === 'Date' ? %_ValueOf(arg) : ThrowDateT
ypeError()); |
147 macro DAY(time) = ($floor(time / 86400000)); | 149 macro DAY(time) = ($floor(time / 86400000)); |
148 macro MONTH_FROM_TIME(time) = (MonthFromTime(time)); | 150 macro NAN_OR_DATE_FROM_TIME(time) = (NUMBER_IS_NAN(time) ? time : DateFromTime(t
ime)); |
149 macro DATE_FROM_TIME(time) = (DateFromTime(time)); | |
150 macro NAN_OR_DATE_FROM_TIME(time) = (NUMBER_IS_NAN(time) ? time : DATE_FROM_TIME
(time)); | |
151 macro YEAR_FROM_TIME(time) = (YearFromTime(time)); | |
152 macro HOUR_FROM_TIME(time) = (Modulo($floor(time / 3600000), 24)); | 151 macro HOUR_FROM_TIME(time) = (Modulo($floor(time / 3600000), 24)); |
153 macro MIN_FROM_TIME(time) = (Modulo($floor(time / 60000), 60)); | 152 macro MIN_FROM_TIME(time) = (Modulo($floor(time / 60000), 60)); |
154 macro NAN_OR_MIN_FROM_TIME(time) = (NUMBER_IS_NAN(time) ? time : MIN_FROM_TIME(t
ime)); | 153 macro NAN_OR_MIN_FROM_TIME(time) = (NUMBER_IS_NAN(time) ? time : MIN_FROM_TIME(t
ime)); |
155 macro SEC_FROM_TIME(time) = (Modulo($floor(time / 1000), 60)); | 154 macro SEC_FROM_TIME(time) = (Modulo($floor(time / 1000), 60)); |
156 macro NAN_OR_SEC_FROM_TIME(time) = (NUMBER_IS_NAN(time) ? time : SEC_FROM_TIME(t
ime)); | 155 macro NAN_OR_SEC_FROM_TIME(time) = (NUMBER_IS_NAN(time) ? time : SEC_FROM_TIME(t
ime)); |
157 macro MS_FROM_TIME(time) = (Modulo(time, 1000)); | 156 macro MS_FROM_TIME(time) = (Modulo(time, 1000)); |
158 macro NAN_OR_MS_FROM_TIME(time) = (NUMBER_IS_NAN(time) ? time : MS_FROM_TIME(tim
e)); | 157 macro NAN_OR_MS_FROM_TIME(time) = (NUMBER_IS_NAN(time) ? time : MS_FROM_TIME(tim
e)); |
159 | 158 |
160 # Last input and last subject of regexp matches. | 159 # Last input and last subject of regexp matches. |
161 macro LAST_SUBJECT(array) = ((array)[1]); | 160 macro LAST_SUBJECT(array) = ((array)[1]); |
162 macro LAST_INPUT(array) = ((array)[2]); | 161 macro LAST_INPUT(array) = ((array)[2]); |
163 | 162 |
164 # REGEXP_FIRST_CAPTURE | 163 # REGEXP_FIRST_CAPTURE |
165 macro CAPTURE(index) = (3 + (index)); | 164 macro CAPTURE(index) = (3 + (index)); |
166 const CAPTURE0 = 3; | 165 const CAPTURE0 = 3; |
167 const CAPTURE1 = 4; | 166 const CAPTURE1 = 4; |
168 | 167 |
169 # PropertyDescriptor return value indices - must match | 168 # PropertyDescriptor return value indices - must match |
170 # PropertyDescriptorIndices in runtime.cc. | 169 # PropertyDescriptorIndices in runtime.cc. |
171 const IS_ACCESSOR_INDEX = 0; | 170 const IS_ACCESSOR_INDEX = 0; |
172 const VALUE_INDEX = 1; | 171 const VALUE_INDEX = 1; |
173 const GETTER_INDEX = 2; | 172 const GETTER_INDEX = 2; |
174 const SETTER_INDEX = 3; | 173 const SETTER_INDEX = 3; |
175 const WRITABLE_INDEX = 4; | 174 const WRITABLE_INDEX = 4; |
176 const ENUMERABLE_INDEX = 5; | 175 const ENUMERABLE_INDEX = 5; |
177 const CONFIGURABLE_INDEX = 6; | 176 const CONFIGURABLE_INDEX = 6; |
OLD | NEW |