annotate dmdscript_tango/ddate.d @ 3:8363a4bf6a8f

rename package: dmdscript to dmdscript_tango
author saaadel
date Sun, 24 Jan 2010 18:33:05 +0200
parents 55c2951c07be
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
2 /* Digital Mars DMDScript source code.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
3 * Copyright (c) 2000-2002 by Chromium Communications
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
4 * D version Copyright (c) 2004-2005 by Digital Mars
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
5 * All Rights Reserved
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
6 * written by Walter Bright
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
7 * www.digitalmars.com
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
8 * Use at your own risk. There is no warranty, express or implied.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
9 * License for redistribution is by the GNU General Public License in gpl.txt.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
10 *
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
11 * A binary, non-exclusive license for commercial use can be
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
12 * purchased from www.digitalmars.com/dscript/buy.html.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
13 *
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
14 * DMDScript is implemented in the D Programming Language,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
15 * www.digitalmars.com/d/
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
16 *
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
17 * For a C++ implementation of DMDScript, including COM support,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
18 * see www.digitalmars.com/dscript/cppscript.html.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
19 */
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
20
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
21
3
8363a4bf6a8f rename package: dmdscript to dmdscript_tango
saaadel
parents: 0
diff changeset
22 module dmdscript_tango.ddate;
0
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
23
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
24 import std.math;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
25 import std.date;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
26
3
8363a4bf6a8f rename package: dmdscript to dmdscript_tango
saaadel
parents: 0
diff changeset
27 import dmdscript_tango.script;
8363a4bf6a8f rename package: dmdscript to dmdscript_tango
saaadel
parents: 0
diff changeset
28 import dmdscript_tango.dobject;
8363a4bf6a8f rename package: dmdscript to dmdscript_tango
saaadel
parents: 0
diff changeset
29 import dmdscript_tango.value;
8363a4bf6a8f rename package: dmdscript to dmdscript_tango
saaadel
parents: 0
diff changeset
30 import dmdscript_tango.threadcontext;
8363a4bf6a8f rename package: dmdscript to dmdscript_tango
saaadel
parents: 0
diff changeset
31 import dmdscript_tango.dfunction;
8363a4bf6a8f rename package: dmdscript to dmdscript_tango
saaadel
parents: 0
diff changeset
32 import dmdscript_tango.dnative;
8363a4bf6a8f rename package: dmdscript to dmdscript_tango
saaadel
parents: 0
diff changeset
33 import dmdscript_tango.property;
8363a4bf6a8f rename package: dmdscript to dmdscript_tango
saaadel
parents: 0
diff changeset
34 import dmdscript_tango.text;
8363a4bf6a8f rename package: dmdscript to dmdscript_tango
saaadel
parents: 0
diff changeset
35 import dmdscript_tango.textgen.errmsgs;
0
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
36
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
37 version = DATETOSTRING; // use DateToString
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
38
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
39 enum TIMEFORMAT
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
40 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
41 String,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
42 DateString,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
43 TimeString,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
44 LocaleString,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
45 LocaleDateString,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
46 LocaleTimeString,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
47 UTCString,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
48 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
49
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
50 d_time parseDateString(CallContext *cc, d_string s)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
51 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
52 return std.date.parse(s);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
53 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
54
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
55 d_string dateToString(CallContext *cc, d_time t, TIMEFORMAT tf)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
56 { tchar[] p;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
57
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
58 if (t == d_time_nan)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
59 p = "Invalid Date";
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
60 else
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
61 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
62 switch (tf)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
63 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
64 case TIMEFORMAT.String:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
65 t = std.date.LocalTimetoUTC(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
66 p = std.date.toString(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
67 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
68
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
69 case TIMEFORMAT.DateString:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
70 t = std.date.LocalTimetoUTC(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
71 p = std.date.toDateString(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
72 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
73
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
74 case TIMEFORMAT.TimeString:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
75 t = std.date.LocalTimetoUTC(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
76 p = std.date.toTimeString(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
77 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
78
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
79 case TIMEFORMAT.LocaleString:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
80 //p = std.date.toLocaleString(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
81 p = std.date.toString(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
82 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
83
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
84 case TIMEFORMAT.LocaleDateString:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
85 //p = std.date.toLocaleDateString(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
86 p = std.date.toDateString(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
87 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
88
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
89 case TIMEFORMAT.LocaleTimeString:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
90 //p = std.date.toLocaleTimeString(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
91 p = std.date.toTimeString(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
92 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
93
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
94 case TIMEFORMAT.UTCString:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
95 p = std.date.toUTCString(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
96 //p = std.date.toString(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
97 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
98
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
99 default:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
100 assert(0);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
101 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
102 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
103 return p;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
104 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
105
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
106
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
107 /* ===================== Ddate.constructor functions ==================== */
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
108
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
109 void* Ddate_parse(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
110 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
111
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
112 // ECMA 15.9.4.2
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
113 d_string s;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
114 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
115
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
116 if (arglist.length == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
117 n = d_time_nan;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
118 else
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
119 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
120 s = arglist[0].toString();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
121 n = parseDateString(cc, s);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
122 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
123
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
124 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
125 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
126 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
127
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
128 void* Ddate_UTC(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
129 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
130 // ECMA 15.9.4.3 - 15.9.4.10
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
131
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
132 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
133
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
134 d_time year;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
135 d_time month = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
136 d_time date = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
137 d_time hours = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
138 d_time minutes = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
139 d_time seconds = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
140 d_time ms = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
141
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
142 d_time day;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
143 d_time time = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
144
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
145 switch (arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
146 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
147 default:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
148 case 7:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
149 ms = arglist[6].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
150 case 6:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
151 seconds = arglist[5].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
152 case 5:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
153 minutes = arglist[4].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
154 case 4:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
155 hours = arglist[3].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
156 time = std.date.MakeTime(hours, minutes, seconds, ms);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
157 case 3:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
158 date = arglist[2].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
159 case 2:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
160 month = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
161 case 1:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
162 year = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
163
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
164 if (year != d_time_nan && year >= 0 && year <= 99)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
165 year += 1900;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
166 day = std.date.MakeDay(year, month, date);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
167 n = std.date.TimeClip(std.date.MakeDate(day,time));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
168 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
169
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
170 case 0:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
171 n = std.date.getUTCtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
172 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
173 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
174 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
175 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
176 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
177
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
178 /* ===================== Ddate_constructor ==================== */
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
179
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
180 class Ddate_constructor : Dfunction
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
181 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
182 this(ThreadContext *tc)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
183 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
184 super(7, tc.Dfunction_prototype);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
185 name = "Date";
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
186
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
187 static NativeFunctionData nfd[] =
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
188 [
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
189 { &TEXT_parse, &Ddate_parse, 1 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
190 { &TEXT_UTC, &Ddate_UTC, 7 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
191 ];
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
192
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
193 DnativeFunction.init(this, nfd, 0);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
194 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
195
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
196 void *Construct(CallContext *cc, Value *ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
197 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
198 // ECMA 15.9.3
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
199 Dobject o;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
200 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
201
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
202 d_time year;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
203 d_time month;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
204 d_time date = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
205 d_time hours = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
206 d_time minutes = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
207 d_time seconds = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
208 d_time ms = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
209
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
210 d_time day;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
211 d_time time = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
212
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
213 //writefln("Ddate_constructor.Construct()");
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
214 switch (arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
215 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
216 default:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
217 case 7:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
218 ms = arglist[6].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
219 case 6:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
220 seconds = arglist[5].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
221 case 5:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
222 minutes = arglist[4].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
223 case 4:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
224 hours = arglist[3].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
225 time = std.date.MakeTime(hours, minutes, seconds, ms);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
226 case 3:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
227 date = arglist[2].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
228 case 2:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
229 month = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
230 year = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
231
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
232 if (year != d_time_nan && year >= 0 && year <= 99)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
233 year += 1900;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
234 day = std.date.MakeDay(year, month, date);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
235 n = std.date.TimeClip(std.date.LocalTimetoUTC(std.date.MakeDate(day, time)));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
236 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
237
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
238 case 1:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
239 arglist[0].toPrimitive(ret, null);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
240 if (ret.getType() == TypeString)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
241 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
242 n = parseDateString(cc, ret.string);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
243 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
244 else
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
245 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
246 n = ret.toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
247 n = std.date.TimeClip(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
248 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
249 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
250
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
251 case 0:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
252 n = std.date.getUTCtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
253 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
254 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
255 //writefln("\tn = %s", n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
256 o = new Ddate(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
257 ret.putVobject(o);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
258 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
259 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
260
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
261 void *Call(CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
262 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
263 // ECMA 15.9.2
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
264 // return string as if (new Date()).toString()
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
265 d_string s;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
266 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
267
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
268 version (DATETOSTRING)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
269 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
270 t = std.date.getUTCtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
271 t = std.date.UTCtoLocalTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
272 s = dateToString(cc, t, TIMEFORMAT.String);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
273 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
274 else
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
275 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
276 t = std.date.time();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
277 s = std.date.toString(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
278 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
279 ret.putVstring(s);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
280 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
281 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
282 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
283
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
284
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
285 /* ===================== Ddate.prototype functions =============== */
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
286
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
287 void *checkdate(Value* ret, tchar[] name, Dobject othis)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
288 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
289 ret.putVundefined();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
290 ErrInfo errinfo;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
291 return Dobject.RuntimeError(&errinfo, errmsgtbl[ERR_FUNCTION_WANTS_DATE],
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
292 name, othis.classname);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
293 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
294
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
295 int getThisTime(Value* ret, Dobject othis, out d_time n)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
296 { d_number x;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
297
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
298 n = cast(d_time)othis.value.number;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
299 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
300 return (n == d_time_nan) ? 1 : 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
301 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
302
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
303 int getThisLocalTime(Value* ret, Dobject othis, out d_time n)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
304 { int isn = 1;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
305
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
306 n = cast(d_time)othis.value.number;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
307 if (n != d_time_nan)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
308 { isn = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
309 n = std.date.UTCtoLocalTime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
310 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
311 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
312 return isn;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
313 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
314
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
315 void* Ddate_prototype_toString(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
316 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
317 // ECMA 15.9.5.2
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
318 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
319 d_string s;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
320
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
321 //writefln("Ddate_prototype_toString()");
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
322 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
323 return checkdate(ret, TEXT_toString, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
324
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
325 version (DATETOSTRING)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
326 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
327 getThisLocalTime(ret, othis, n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
328 s = dateToString(cc, n, TIMEFORMAT.String);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
329 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
330 else
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
331 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
332 getThisTime(ret, othis, n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
333 s = std.date.ToString(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
334 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
335 ret.putVstring(s);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
336 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
337 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
338
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
339 void* Ddate_prototype_toDateString(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
340 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
341 // ECMA 15.9.5.3
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
342 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
343 d_string s;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
344
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
345 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
346 return checkdate(ret, TEXT_toDateString, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
347
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
348 version (DATETOSTRING)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
349 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
350 getThisLocalTime(ret, othis, n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
351 s = dateToString(cc, n, TIMEFORMAT.DateString);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
352 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
353 else
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
354 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
355 getThisTime(ret, othis, n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
356 s = std.date.ToDateString(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
357 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
358 ret.putVstring(s);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
359 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
360 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
361
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
362 void* Ddate_prototype_toTimeString(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
363 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
364 // ECMA 15.9.5.4
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
365 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
366 d_string s;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
367
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
368 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
369 return checkdate(ret, TEXT_toTimeString, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
370
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
371 version (DATETOSTRING)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
372 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
373 getThisLocalTime(ret, othis, n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
374 s = dateToString(cc, n, TIMEFORMAT.TimeString);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
375 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
376 else
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
377 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
378 getThisTime(ret, othis, n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
379 s = std.date.ToTimeString(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
380 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
381 //s = std.date.ToTimeString(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
382 ret.putVstring(s);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
383 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
384 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
385
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
386 void* Ddate_prototype_valueOf(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
387 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
388 // ECMA 15.9.5.3
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
389 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
390
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
391 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
392 return checkdate(ret, TEXT_valueOf, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
393 getThisTime(ret, othis, n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
394 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
395 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
396
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
397 void* Ddate_prototype_getTime(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
398 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
399 // ECMA 15.9.5.4
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
400 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
401
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
402 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
403 return checkdate(ret, TEXT_getTime, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
404 getThisTime(ret, othis, n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
405 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
406 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
407
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
408 void* Ddate_prototype_getYear(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
409 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
410 // ECMA 15.9.5.5
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
411 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
412
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
413 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
414 return checkdate(ret, TEXT_getYear, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
415
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
416 if (getThisLocalTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
417 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
418 n = std.date.YearFromTime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
419 if (n != d_time_nan)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
420 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
421 n -= 1900;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
422 version (all) // emulate jscript bug
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
423 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
424 if (n < 0 || n >= 100)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
425 n += 1900;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
426 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
427 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
428 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
429 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
430 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
431 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
432
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
433 void* Ddate_prototype_getFullYear(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
434 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
435 // ECMA 15.9.5.6
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
436 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
437
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
438 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
439 return checkdate(ret, TEXT_getFullYear, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
440
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
441 if (getThisLocalTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
442 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
443 n = std.date.YearFromTime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
444 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
445 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
446 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
447 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
448
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
449 void* Ddate_prototype_getUTCFullYear(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
450 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
451 // ECMA 15.9.5.7
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
452 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
453
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
454 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
455 return checkdate(ret, TEXT_getUTCFullYear, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
456 if (getThisTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
457 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
458 n = std.date.YearFromTime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
459 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
460 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
461 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
462 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
463
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
464 void* Ddate_prototype_getMonth(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
465 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
466 // ECMA 15.9.5.8
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
467 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
468
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
469 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
470 return checkdate(ret, TEXT_getMonth, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
471
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
472 if (getThisLocalTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
473 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
474 n = std.date.MonthFromTime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
475 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
476 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
477 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
478 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
479
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
480 void* Ddate_prototype_getUTCMonth(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
481 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
482 // ECMA 15.9.5.9
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
483 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
484
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
485 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
486 return checkdate(ret, TEXT_getUTCMonth, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
487
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
488 if (getThisTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
489 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
490 n = std.date.MonthFromTime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
491 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
492 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
493 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
494 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
495
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
496 void* Ddate_prototype_getDate(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
497 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
498 // ECMA 15.9.5.10
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
499 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
500
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
501 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
502 return checkdate(ret, TEXT_getDate, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
503
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
504 if (getThisLocalTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
505 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
506 //printf("LocalTime = %.16g\n", n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
507 //printf("DaylightSavingTA(n) = %d\n", std.date.DaylightSavingTA(n));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
508 n = std.date.DateFromTime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
509 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
510 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
511 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
512 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
513
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
514 void* Ddate_prototype_getUTCDate(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
515 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
516 // ECMA 15.9.5.11
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
517 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
518
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
519 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
520 return checkdate(ret, TEXT_getUTCDate, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
521
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
522 if (getThisTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
523 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
524 n = std.date.DateFromTime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
525 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
526 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
527 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
528 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
529
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
530 void* Ddate_prototype_getDay(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
531 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
532 // ECMA 15.9.5.12
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
533 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
534
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
535 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
536 return checkdate(ret, TEXT_getDay, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
537
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
538 if (getThisLocalTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
539 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
540 n = std.date.WeekDay(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
541 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
542 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
543 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
544 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
545
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
546 void* Ddate_prototype_getUTCDay(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
547 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
548 // ECMA 15.9.5.13
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
549 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
550
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
551 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
552 return checkdate(ret, TEXT_getUTCDay, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
553
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
554 if (getThisTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
555 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
556 n = std.date.WeekDay(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
557 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
558 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
559 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
560 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
561
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
562 void* Ddate_prototype_getHours(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
563 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
564 // ECMA 15.9.5.14
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
565 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
566
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
567 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
568 return checkdate(ret, TEXT_getHours, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
569
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
570 if (getThisLocalTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
571 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
572 n = std.date.HourFromTime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
573 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
574 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
575 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
576 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
577
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
578 void* Ddate_prototype_getUTCHours(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
579 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
580 // ECMA 15.9.5.15
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
581 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
582
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
583 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
584 return checkdate(ret, TEXT_getUTCHours, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
585
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
586 if (getThisTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
587 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
588 n = std.date.HourFromTime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
589 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
590 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
591 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
592 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
593
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
594 void* Ddate_prototype_getMinutes(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
595 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
596 // ECMA 15.9.5.16
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
597 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
598
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
599 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
600 return checkdate(ret, TEXT_getMinutes, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
601
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
602 if (getThisLocalTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
603 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
604 n = std.date.MinFromTime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
605 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
606 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
607 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
608 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
609
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
610 void* Ddate_prototype_getUTCMinutes(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
611 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
612 // ECMA 15.9.5.17
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
613 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
614
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
615 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
616 return checkdate(ret, TEXT_getUTCMinutes, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
617
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
618 if (getThisTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
619 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
620 n = std.date.MinFromTime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
621 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
622 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
623 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
624 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
625
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
626 void* Ddate_prototype_getSeconds(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
627 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
628 // ECMA 15.9.5.18
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
629 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
630
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
631 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
632 return checkdate(ret, TEXT_getSeconds, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
633
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
634 if (getThisLocalTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
635 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
636 n = std.date.SecFromTime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
637 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
638 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
639 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
640 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
641
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
642 void* Ddate_prototype_getUTCSeconds(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
643 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
644 // ECMA 15.9.5.19
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
645 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
646
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
647 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
648 return checkdate(ret, TEXT_getUTCSeconds, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
649
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
650 if (getThisTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
651 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
652 n = std.date.SecFromTime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
653 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
654 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
655 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
656 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
657
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
658 void* Ddate_prototype_getMilliseconds(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
659 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
660 // ECMA 15.9.5.20
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
661 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
662
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
663 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
664 return checkdate(ret, TEXT_getMilliseconds, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
665
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
666 if (getThisLocalTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
667 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
668 n = std.date.msFromTime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
669 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
670 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
671 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
672 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
673
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
674 void* Ddate_prototype_getUTCMilliseconds(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
675 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
676 // ECMA 15.9.5.21
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
677 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
678
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
679 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
680 return checkdate(ret, TEXT_getUTCMilliseconds, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
681
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
682 if (getThisTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
683 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
684 n = std.date.msFromTime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
685 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
686 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
687 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
688 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
689
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
690 void* Ddate_prototype_getTimezoneOffset(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
691 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
692 // ECMA 15.9.5.22
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
693 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
694
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
695 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
696 return checkdate(ret, TEXT_getTimezoneOffset, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
697
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
698 if (getThisTime(ret, othis, n) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
699 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
700 n = (n - std.date.UTCtoLocalTime(n)) / (60 * 1000);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
701 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
702 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
703 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
704 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
705
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
706 void* Ddate_prototype_setTime(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
707 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
708 // ECMA 15.9.5.23
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
709 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
710
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
711 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
712 return checkdate(ret, TEXT_setTime, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
713
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
714 if (!arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
715 n = d_time_nan;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
716 else
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
717 n = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
718 n = std.date.TimeClip(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
719 othis.value.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
720 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
721 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
722 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
723
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
724 void* Ddate_prototype_setMilliseconds(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
725 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
726 // ECMA 15.9.5.24
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
727
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
728 d_time ms;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
729 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
730 d_time time;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
731 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
732
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
733 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
734 return checkdate(ret, TEXT_setMilliseconds, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
735
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
736 if (getThisLocalTime(ret, othis, t) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
737 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
738 if (!arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
739 ms = d_time_nan;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
740 else
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
741 ms = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
742 time = std.date.MakeTime(std.date.HourFromTime(t), std.date.MinFromTime(t), std.date.SecFromTime(t), ms);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
743 n = std.date.TimeClip(std.date.LocalTimetoUTC(std.date.MakeDate(std.date.Day(t),time)));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
744 othis.value.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
745 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
746 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
747 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
748 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
749
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
750 void* Ddate_prototype_setUTCMilliseconds(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
751 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
752 // ECMA 15.9.5.25
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
753 d_time ms;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
754 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
755 d_time time;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
756 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
757
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
758 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
759 return checkdate(ret, TEXT_setUTCMilliseconds, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
760
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
761 if (getThisTime(ret, othis, t) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
762 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
763 if (!arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
764 ms = d_time_nan;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
765 else
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
766 ms = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
767 time = std.date.MakeTime(std.date.HourFromTime(t), std.date.MinFromTime(t), std.date.SecFromTime(t), ms);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
768 n = std.date.TimeClip(std.date.MakeDate(std.date.Day(t),time));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
769 othis.value.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
770 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
771 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
772 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
773 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
774
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
775 void* Ddate_prototype_setSeconds(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
776 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
777 // ECMA 15.9.5.26
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
778 d_time ms;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
779 d_time seconds;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
780 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
781 d_time time;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
782 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
783
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
784 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
785 return checkdate(ret, TEXT_setSeconds, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
786
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
787 if (getThisLocalTime(ret, othis, t) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
788 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
789 switch (arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
790 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
791 default:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
792 case 2:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
793 ms = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
794 seconds = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
795 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
796
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
797 case 1:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
798 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
799 seconds = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
800 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
801
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
802 case 0:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
803 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
804 seconds = d_time_nan;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
805 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
806 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
807 time = std.date.MakeTime(std.date.HourFromTime(t), std.date.MinFromTime(t), seconds, ms);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
808 n = std.date.TimeClip(std.date.LocalTimetoUTC(std.date.MakeDate(std.date.Day(t),time)));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
809 othis.value.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
810 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
811 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
812 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
813 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
814
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
815 void* Ddate_prototype_setUTCSeconds(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
816 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
817 // ECMA 15.9.5.27
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
818 d_time ms;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
819 d_time seconds;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
820 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
821 d_time time;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
822 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
823
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
824 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
825 return checkdate(ret, TEXT_setUTCSeconds, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
826
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
827 if (getThisTime(ret, othis, t) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
828 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
829 switch (arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
830 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
831 default:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
832 case 2:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
833 ms = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
834 seconds = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
835 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
836
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
837 case 1:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
838 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
839 seconds = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
840 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
841
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
842 case 0:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
843 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
844 seconds = d_time_nan;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
845 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
846 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
847 time = std.date.MakeTime(std.date.HourFromTime(t), std.date.MinFromTime(t), seconds, ms);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
848 n = std.date.TimeClip(std.date.MakeDate(std.date.Day(t),time));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
849 othis.value.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
850 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
851 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
852 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
853 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
854
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
855 void* Ddate_prototype_setMinutes(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
856 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
857 // ECMA 15.9.5.28
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
858 d_time ms;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
859 d_time seconds;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
860 d_time minutes;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
861 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
862 d_time time;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
863 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
864
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
865 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
866 return checkdate(ret, TEXT_setMinutes, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
867
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
868 if (getThisLocalTime(ret, othis, t) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
869 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
870 switch (arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
871 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
872 default:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
873 case 3:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
874 ms = arglist[2].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
875 seconds = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
876 minutes = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
877 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
878
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
879 case 2:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
880 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
881 seconds = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
882 minutes = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
883 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
884
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
885 case 1:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
886 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
887 seconds = std.date.SecFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
888 minutes = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
889 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
890
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
891 case 0:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
892 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
893 seconds = std.date.SecFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
894 minutes = d_time_nan;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
895 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
896 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
897 time = std.date.MakeTime(std.date.HourFromTime(t), minutes, seconds, ms);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
898 n = std.date.TimeClip(std.date.LocalTimetoUTC(std.date.MakeDate(std.date.Day(t),time)));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
899 othis.value.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
900 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
901 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
902 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
903 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
904
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
905 void* Ddate_prototype_setUTCMinutes(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
906 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
907 // ECMA 15.9.5.29
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
908 d_time ms;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
909 d_time seconds;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
910 d_time minutes;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
911 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
912 d_time time;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
913 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
914
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
915 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
916 return checkdate(ret, TEXT_setUTCMinutes, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
917
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
918 if (getThisTime(ret, othis, t) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
919 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
920 switch (arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
921 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
922 default:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
923 case 3:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
924 ms = arglist[2].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
925 seconds = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
926 minutes = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
927 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
928
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
929 case 2:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
930 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
931 seconds = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
932 minutes = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
933 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
934
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
935 case 1:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
936 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
937 seconds = std.date.SecFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
938 minutes = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
939 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
940
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
941 case 0:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
942 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
943 seconds = std.date.SecFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
944 minutes = d_time_nan;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
945 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
946 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
947 time = std.date.MakeTime(std.date.HourFromTime(t), minutes, seconds, ms);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
948 n = std.date.TimeClip(std.date.MakeDate(std.date.Day(t),time));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
949 othis.value.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
950 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
951 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
952 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
953 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
954
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
955 void* Ddate_prototype_setHours(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
956 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
957 // ECMA 15.9.5.30
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
958 d_time ms;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
959 d_time seconds;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
960 d_time minutes;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
961 d_time hours;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
962 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
963 d_time time;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
964 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
965
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
966 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
967 return checkdate(ret, TEXT_setHours, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
968
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
969 if (getThisLocalTime(ret, othis, t) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
970 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
971 switch (arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
972 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
973 default:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
974 case 4:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
975 ms = arglist[3].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
976 seconds = arglist[2].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
977 minutes = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
978 hours = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
979 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
980
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
981 case 3:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
982 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
983 seconds = arglist[2].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
984 minutes = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
985 hours = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
986 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
987
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
988 case 2:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
989 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
990 seconds = std.date.SecFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
991 minutes = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
992 hours = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
993 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
994
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
995 case 1:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
996 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
997 seconds = std.date.SecFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
998 minutes = std.date.MinFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
999 hours = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1000 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1001
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1002 case 0:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1003 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1004 seconds = std.date.SecFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1005 minutes = std.date.MinFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1006 hours = d_time_nan;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1007 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1008 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1009 time = std.date.MakeTime(hours, minutes, seconds, ms);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1010 n = std.date.TimeClip(std.date.LocalTimetoUTC(std.date.MakeDate(std.date.Day(t),time)));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1011 othis.value.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1012 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1013 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1014 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1015 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1016
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1017 void* Ddate_prototype_setUTCHours(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1018 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1019 // ECMA 15.9.5.31
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1020 d_time ms;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1021 d_time seconds;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1022 d_time minutes;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1023 d_time hours;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1024 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1025 d_time time;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1026 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1027
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1028 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1029 return checkdate(ret, TEXT_setUTCHours, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1030
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1031 if (getThisTime(ret, othis, t) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1032 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1033 switch (arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1034 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1035 default:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1036 case 4:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1037 ms = arglist[3].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1038 seconds = arglist[2].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1039 minutes = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1040 hours = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1041 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1042
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1043 case 3:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1044 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1045 seconds = arglist[2].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1046 minutes = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1047 hours = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1048 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1049
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1050 case 2:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1051 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1052 seconds = std.date.SecFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1053 minutes = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1054 hours = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1055 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1056
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1057 case 1:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1058 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1059 seconds = std.date.SecFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1060 minutes = std.date.MinFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1061 hours = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1062 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1063
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1064 case 0:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1065 ms = std.date.msFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1066 seconds = std.date.SecFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1067 minutes = std.date.MinFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1068 hours = d_time_nan;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1069 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1070 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1071 time = std.date.MakeTime(hours, minutes, seconds, ms);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1072 n = std.date.TimeClip(std.date.MakeDate(std.date.Day(t),time));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1073 othis.value.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1074 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1075 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1076 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1077 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1078
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1079 void* Ddate_prototype_setDate(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1080 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1081 // ECMA 15.9.5.32
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1082 d_time date;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1083 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1084 d_time day;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1085 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1086
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1087 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1088 return checkdate(ret, TEXT_setDate, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1089
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1090 if (getThisLocalTime(ret, othis, t) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1091 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1092 if (!arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1093 date = d_time_nan;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1094 else
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1095 date = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1096 day = std.date.MakeDay(std.date.YearFromTime(t), std.date.MonthFromTime(t), date);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1097 n = std.date.TimeClip(std.date.LocalTimetoUTC(std.date.MakeDate(day, std.date.TimeWithinDay(t))));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1098 othis.value.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1099 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1100 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1101 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1102 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1103
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1104 void* Ddate_prototype_setUTCDate(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1105 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1106 // ECMA 15.9.5.33
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1107 d_time date;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1108 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1109 d_time day;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1110 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1111
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1112 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1113 return checkdate(ret, TEXT_setUTCDate, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1114
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1115 if (getThisTime(ret, othis, t) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1116 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1117 if (!arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1118 date = d_time_nan;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1119 else
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1120 date = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1121 day = std.date.MakeDay(std.date.YearFromTime(t), std.date.MonthFromTime(t), date);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1122 n = std.date.TimeClip(std.date.MakeDate(day, std.date.TimeWithinDay(t)));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1123 othis.value.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1124 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1125 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1126 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1127 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1128
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1129 void* Ddate_prototype_setMonth(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1130 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1131 // ECMA 15.9.5.34
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1132 d_time date;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1133 d_time month;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1134 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1135 d_time day;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1136 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1137
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1138 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1139 return checkdate(ret, TEXT_setMonth, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1140
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1141 if (getThisLocalTime(ret, othis, t) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1142 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1143 switch (arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1144 { default:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1145 case 2:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1146 month = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1147 date = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1148 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1149
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1150 case 1:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1151 month = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1152 date = std.date.DateFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1153 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1154
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1155 case 0:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1156 month = d_time_nan;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1157 date = std.date.DateFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1158 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1159 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1160 day = std.date.MakeDay(std.date.YearFromTime(t), month, date);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1161 n = std.date.TimeClip(std.date.LocalTimetoUTC(std.date.MakeDate(day, std.date.TimeWithinDay(t))));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1162 othis.value.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1163 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1164 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1165 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1166 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1167
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1168 void* Ddate_prototype_setUTCMonth(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1169 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1170 // ECMA 15.9.5.35
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1171 d_time date;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1172 d_time month;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1173 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1174 d_time day;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1175 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1176
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1177 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1178 return checkdate(ret, TEXT_setUTCMonth, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1179
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1180 if (getThisTime(ret, othis, t) == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1181 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1182 switch (arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1183 { default:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1184 case 2:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1185 month = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1186 date = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1187 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1188
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1189 case 1:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1190 month = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1191 date = std.date.DateFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1192 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1193
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1194 case 0:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1195 month = d_time_nan;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1196 date = std.date.DateFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1197 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1198 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1199 day = std.date.MakeDay(std.date.YearFromTime(t), month, date);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1200 n = std.date.TimeClip(std.date.MakeDate(day, std.date.TimeWithinDay(t)));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1201 othis.value.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1202 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1203 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1204 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1205 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1206
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1207 void* Ddate_prototype_setFullYear(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1208 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1209 // ECMA 15.9.5.36
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1210 d_time date;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1211 d_time month;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1212 d_time year;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1213 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1214 d_time day;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1215 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1216
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1217 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1218 return checkdate(ret, TEXT_setFullYear, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1219
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1220 if (getThisLocalTime(ret, othis, t))
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1221 t = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1222
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1223 switch (arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1224 { default:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1225 case 3:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1226 date = arglist[2].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1227 month = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1228 year = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1229 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1230
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1231 case 2:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1232 date = std.date.DateFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1233 month = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1234 year = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1235 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1236
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1237 case 1:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1238 date = std.date.DateFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1239 month = std.date.MonthFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1240 year = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1241 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1242
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1243 case 0:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1244 date = std.date.DateFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1245 month = std.date.MonthFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1246 year = d_time_nan;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1247 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1248 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1249 day = std.date.MakeDay(year, month, date);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1250 n = std.date.TimeClip(std.date.LocalTimetoUTC(std.date.MakeDate(day, std.date.TimeWithinDay(t))));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1251 othis.value.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1252 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1253 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1254 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1255
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1256 void* Ddate_prototype_setUTCFullYear(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1257 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1258 // ECMA 15.9.5.37
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1259 d_time date;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1260 d_time month;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1261 d_time year;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1262 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1263 d_time day;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1264 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1265
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1266 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1267 return checkdate(ret, TEXT_setUTCFullYear, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1268
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1269 getThisTime(ret, othis, t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1270 if (t == d_time_nan)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1271 t = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1272 switch (arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1273 { default:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1274 case 3:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1275 month = arglist[2].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1276 date = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1277 year = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1278 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1279
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1280 case 2:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1281 month = std.date.MonthFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1282 date = arglist[1].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1283 year = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1284 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1285
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1286 case 1:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1287 month = std.date.MonthFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1288 date = std.date.DateFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1289 year = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1290 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1291
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1292 case 0:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1293 month = std.date.MonthFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1294 date = std.date.DateFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1295 year = d_time_nan;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1296 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1297 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1298 day = std.date.MakeDay(year, month, date);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1299 n = std.date.TimeClip(std.date.MakeDate(day, std.date.TimeWithinDay(t)));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1300 othis.value.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1301 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1302 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1303 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1304
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1305 void* Ddate_prototype_setYear(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1306 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1307 // ECMA 15.9.5.38
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1308 d_time date;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1309 d_time month;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1310 d_time year;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1311 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1312 d_time day;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1313 d_time n;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1314
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1315 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1316 return checkdate(ret, TEXT_setYear, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1317
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1318 if (getThisLocalTime(ret, othis, t))
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1319 t = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1320 switch (arglist.length)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1321 { default:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1322 case 1:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1323 month = std.date.MonthFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1324 date = std.date.DateFromTime(t);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1325 year = arglist[0].toDtime();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1326 if (0 <= year && year <= 99)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1327 year += 1900;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1328 day = std.date.MakeDay(year, month, date);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1329 n = std.date.TimeClip(std.date.LocalTimetoUTC(std.date.MakeDate(day, std.date.TimeWithinDay(t))));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1330 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1331
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1332 case 0:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1333 n = d_time_nan;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1334 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1335 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1336 othis.value.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1337 ret.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1338 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1339 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1340
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1341 void* Ddate_prototype_toLocaleString(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1342 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1343 // ECMA 15.9.5.39
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1344 d_string s;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1345 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1346
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1347 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1348 return checkdate(ret, TEXT_toLocaleString, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1349
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1350 if (getThisLocalTime(ret, othis, t))
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1351 t = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1352
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1353 s = dateToString(cc, t, TIMEFORMAT.LocaleString);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1354 ret.putVstring(s);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1355 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1356 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1357
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1358 void* Ddate_prototype_toLocaleDateString(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1359 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1360 // ECMA 15.9.5.6
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1361 d_string s;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1362 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1363
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1364 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1365 return checkdate(ret, TEXT_toLocaleDateString, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1366
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1367 if (getThisLocalTime(ret, othis, t))
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1368 t = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1369
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1370 s = dateToString(cc, t, TIMEFORMAT.LocaleDateString);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1371 ret.putVstring(s);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1372 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1373 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1374
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1375 void* Ddate_prototype_toLocaleTimeString(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1376 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1377 // ECMA 15.9.5.7
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1378 d_string s;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1379 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1380
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1381 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1382 return checkdate(ret, TEXT_toLocaleTimeString, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1383
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1384 if (getThisLocalTime(ret, othis, t))
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1385 t = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1386 s = dateToString(cc, t, TIMEFORMAT.LocaleTimeString);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1387 ret.putVstring(s);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1388 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1389 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1390
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1391 void* Ddate_prototype_toUTCString(Dobject pthis, CallContext *cc, Dobject othis, Value* ret, Value[] arglist)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1392 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1393 // ECMA 15.9.5.40
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1394 d_string s;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1395 d_time t;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1396
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1397 if (!othis.isDdate())
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1398 return checkdate(ret, TEXT_toUTCString, othis);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1399
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1400 if (getThisTime(ret, othis, t))
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1401 t = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1402 s = dateToString(cc, t, TIMEFORMAT.UTCString);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1403 ret.putVstring(s);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1404 return null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1405 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1406
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1407 /* ===================== Ddate_prototype ==================== */
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1408
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1409 class Ddate_prototype : Ddate
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1410 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1411 this(ThreadContext *tc)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1412 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1413 super(tc.Dobject_prototype);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1414
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1415 Dobject f = tc.Dfunction_prototype;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1416
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1417 Put(TEXT_constructor, tc.Ddate_constructor, DontEnum);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1418
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1419 static NativeFunctionData nfd[] =
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1420 [
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1421 { &TEXT_toString, &Ddate_prototype_toString, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1422 { &TEXT_toDateString, &Ddate_prototype_toDateString, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1423 { &TEXT_toTimeString, &Ddate_prototype_toTimeString, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1424 { &TEXT_valueOf, &Ddate_prototype_valueOf, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1425 { &TEXT_getTime, &Ddate_prototype_getTime, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1426 //{ &TEXT_getVarDate, &Ddate_prototype_getVarDate, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1427 { &TEXT_getYear, &Ddate_prototype_getYear, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1428 { &TEXT_getFullYear, &Ddate_prototype_getFullYear, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1429 { &TEXT_getUTCFullYear, &Ddate_prototype_getUTCFullYear, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1430 { &TEXT_getMonth, &Ddate_prototype_getMonth, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1431 { &TEXT_getUTCMonth, &Ddate_prototype_getUTCMonth, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1432 { &TEXT_getDate, &Ddate_prototype_getDate, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1433 { &TEXT_getUTCDate, &Ddate_prototype_getUTCDate, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1434 { &TEXT_getDay, &Ddate_prototype_getDay, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1435 { &TEXT_getUTCDay, &Ddate_prototype_getUTCDay, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1436 { &TEXT_getHours, &Ddate_prototype_getHours, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1437 { &TEXT_getUTCHours, &Ddate_prototype_getUTCHours, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1438 { &TEXT_getMinutes, &Ddate_prototype_getMinutes, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1439 { &TEXT_getUTCMinutes, &Ddate_prototype_getUTCMinutes, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1440 { &TEXT_getSeconds, &Ddate_prototype_getSeconds, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1441 { &TEXT_getUTCSeconds, &Ddate_prototype_getUTCSeconds, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1442 { &TEXT_getMilliseconds, &Ddate_prototype_getMilliseconds, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1443 { &TEXT_getUTCMilliseconds, &Ddate_prototype_getUTCMilliseconds, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1444 { &TEXT_getTimezoneOffset, &Ddate_prototype_getTimezoneOffset, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1445 { &TEXT_setTime, &Ddate_prototype_setTime, 1 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1446 { &TEXT_setMilliseconds, &Ddate_prototype_setMilliseconds, 1 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1447 { &TEXT_setUTCMilliseconds, &Ddate_prototype_setUTCMilliseconds, 1 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1448 { &TEXT_setSeconds, &Ddate_prototype_setSeconds, 2 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1449 { &TEXT_setUTCSeconds, &Ddate_prototype_setUTCSeconds, 2 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1450 { &TEXT_setMinutes, &Ddate_prototype_setMinutes, 3 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1451 { &TEXT_setUTCMinutes, &Ddate_prototype_setUTCMinutes, 3 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1452 { &TEXT_setHours, &Ddate_prototype_setHours, 4 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1453 { &TEXT_setUTCHours, &Ddate_prototype_setUTCHours, 4 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1454 { &TEXT_setDate, &Ddate_prototype_setDate, 1 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1455 { &TEXT_setUTCDate, &Ddate_prototype_setUTCDate, 1 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1456 { &TEXT_setMonth, &Ddate_prototype_setMonth, 2 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1457 { &TEXT_setUTCMonth, &Ddate_prototype_setUTCMonth, 2 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1458 { &TEXT_setFullYear, &Ddate_prototype_setFullYear, 3 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1459 { &TEXT_setUTCFullYear, &Ddate_prototype_setUTCFullYear, 3 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1460 { &TEXT_setYear, &Ddate_prototype_setYear, 1 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1461 { &TEXT_toLocaleString, &Ddate_prototype_toLocaleString, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1462 { &TEXT_toLocaleDateString, &Ddate_prototype_toLocaleDateString, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1463 { &TEXT_toLocaleTimeString, &Ddate_prototype_toLocaleTimeString, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1464 { &TEXT_toUTCString, &Ddate_prototype_toUTCString, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1465
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1466 // Map toGMTString() onto toUTCString(), per ECMA 15.9.5.41
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1467 { &TEXT_toGMTString, &Ddate_prototype_toUTCString, 0 },
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1468 ];
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1469
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1470 DnativeFunction.init(this, nfd, 0);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1471 assert(proptable.get("toString", Value.calcHash("toString")));
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1472 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1473 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1474
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1475
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1476 /* ===================== Ddate ==================== */
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1477
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1478 class Ddate : Dobject
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1479 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1480 this(d_number n)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1481 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1482 super(Ddate.getPrototype());
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1483 classname = TEXT_Date;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1484 value.putVnumber(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1485 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1486
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1487 this(d_time n)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1488 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1489 super(Ddate.getPrototype());
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1490 classname = TEXT_Date;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1491 value.putVtime(n);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1492 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1493
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1494 this(Dobject prototype)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1495 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1496 super(prototype);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1497 classname = TEXT_Date;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1498 value.putVnumber(d_number.nan);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1499 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1500
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1501 static void init(ThreadContext *tc)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1502 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1503 tc.Ddate_constructor = new Ddate_constructor(tc);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1504 tc.Ddate_prototype = new Ddate_prototype(tc);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1505
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1506 tc.Ddate_constructor.Put(TEXT_prototype, tc.Ddate_prototype,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1507 DontEnum | DontDelete | ReadOnly);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1508
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1509 assert(tc.Ddate_prototype.proptable.table.length != 0);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1510 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1511
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1512 static Dfunction getConstructor()
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1513 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1514 ThreadContext *tc = ThreadContext.getThreadContext();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1515 assert(tc);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1516 return tc.Ddate_constructor;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1517 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1518
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1519 static Dobject getPrototype()
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1520 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1521 ThreadContext *tc = ThreadContext.getThreadContext();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1522 assert(tc);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1523 return tc.Ddate_prototype;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1524 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1525 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1526
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1527