Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
84d8cddc
Commit
84d8cddc
authored
Sep 30, 2008
by
Jacek Caban
Committed by
Alexandre Julliard
Oct 01, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
jscript: Added Date constructor object implementation.
parent
a9c4d2b1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
507 additions
and
2 deletions
+507
-2
Makefile.in
dlls/jscript/Makefile.in
+1
-0
date.c
dlls/jscript/date.c
+494
-0
global.c
dlls/jscript/global.c
+7
-2
jscript.h
dlls/jscript/jscript.h
+3
-0
lang.js
dlls/jscript/tests/lang.js
+2
-0
No files found.
dlls/jscript/Makefile.in
View file @
84d8cddc
...
...
@@ -10,6 +10,7 @@ RC_SRCS = rsrc.rc
C_SRCS
=
\
array.c
\
bool.c
\
date.c
\
dispex.c
\
engine.c
\
function
.c
\
...
...
dlls/jscript/date.c
0 → 100644
View file @
84d8cddc
/*
* Copyright 2008 Jacek Caban for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "jscript.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
jscript
);
typedef
struct
{
DispatchEx
dispex
;
}
DateInstance
;
static
const
WCHAR
toStringW
[]
=
{
't'
,
'o'
,
'S'
,
't'
,
'r'
,
'i'
,
'n'
,
'g'
,
0
};
static
const
WCHAR
toLocaleStringW
[]
=
{
't'
,
'o'
,
'L'
,
'o'
,
'c'
,
'a'
,
'l'
,
'e'
,
'S'
,
't'
,
'r'
,
'i'
,
'n'
,
'g'
,
0
};
static
const
WCHAR
hasOwnPropertyW
[]
=
{
'h'
,
'a'
,
's'
,
'O'
,
'w'
,
'n'
,
'P'
,
'r'
,
'o'
,
'p'
,
'e'
,
'r'
,
't'
,
'y'
,
0
};
static
const
WCHAR
propertyIsEnumerableW
[]
=
{
'p'
,
'r'
,
'o'
,
'p'
,
'e'
,
'r'
,
't'
,
'y'
,
'I'
,
's'
,
'E'
,
'n'
,
'u'
,
'm'
,
'e'
,
'r'
,
'a'
,
'b'
,
'l'
,
'e'
,
0
};
static
const
WCHAR
isPrototypeOfW
[]
=
{
'i'
,
's'
,
'P'
,
'r'
,
'o'
,
't'
,
'o'
,
't'
,
'y'
,
'p'
,
'e'
,
'O'
,
'f'
,
0
};
static
const
WCHAR
valueOfW
[]
=
{
'v'
,
'a'
,
'l'
,
'u'
,
'e'
,
'O'
,
'f'
,
0
};
static
const
WCHAR
toUTCStringW
[]
=
{
't'
,
'o'
,
'U'
,
'T'
,
'C'
,
'S'
,
't'
,
'r'
,
'i'
,
'n'
,
'g'
,
0
};
static
const
WCHAR
toDateStringW
[]
=
{
't'
,
'o'
,
'D'
,
'a'
,
't'
,
'e'
,
'S'
,
't'
,
'r'
,
'i'
,
'n'
,
'g'
,
0
};
static
const
WCHAR
toTimeStringW
[]
=
{
't'
,
'o'
,
'T'
,
'i'
,
'm'
,
'e'
,
'S'
,
't'
,
'r'
,
'i'
,
'n'
,
'g'
,
0
};
static
const
WCHAR
toLocaleDateStringW
[]
=
{
't'
,
'o'
,
'L'
,
'o'
,
'c'
,
'a'
,
'l'
,
'e'
,
'D'
,
'a'
,
't'
,
'e'
,
'S'
,
't'
,
'r'
,
'i'
,
'n'
,
'g'
,
0
};
static
const
WCHAR
toLocaleTimeStringW
[]
=
{
't'
,
'o'
,
'L'
,
'o'
,
'c'
,
'a'
,
'l'
,
'e'
,
'T'
,
'i'
,
'm'
,
'e'
,
'S'
,
't'
,
'r'
,
'i'
,
'n'
,
'g'
,
0
};
static
const
WCHAR
getTimeW
[]
=
{
'g'
,
'e'
,
't'
,
'T'
,
'i'
,
'm'
,
'e'
,
0
};
static
const
WCHAR
getFullYearW
[]
=
{
'g'
,
'e'
,
't'
,
'F'
,
'u'
,
'l'
,
'l'
,
'Y'
,
'e'
,
'a'
,
'r'
,
0
};
static
const
WCHAR
getUTCFullYearW
[]
=
{
'g'
,
'e'
,
't'
,
'U'
,
'T'
,
'C'
,
'F'
,
'u'
,
'l'
,
'l'
,
'Y'
,
'e'
,
'a'
,
'r'
,
0
};
static
const
WCHAR
getMonthW
[]
=
{
'g'
,
'e'
,
't'
,
'M'
,
'o'
,
'n'
,
't'
,
'h'
,
0
};
static
const
WCHAR
getUTCMonthW
[]
=
{
'g'
,
'e'
,
't'
,
'U'
,
'T'
,
'C'
,
'M'
,
'o'
,
'n'
,
't'
,
'h'
,
0
};
static
const
WCHAR
getDateW
[]
=
{
'g'
,
'e'
,
't'
,
'D'
,
'a'
,
't'
,
'e'
,
0
};
static
const
WCHAR
getUTCDateW
[]
=
{
'g'
,
'e'
,
't'
,
'U'
,
'T'
,
'C'
,
'D'
,
'a'
,
't'
,
'e'
,
0
};
static
const
WCHAR
getDayW
[]
=
{
'g'
,
'e'
,
't'
,
'D'
,
'a'
,
'y'
,
0
};
static
const
WCHAR
getUTCDayW
[]
=
{
'g'
,
'e'
,
't'
,
'U'
,
'T'
,
'C'
,
'D'
,
'a'
,
'y'
,
0
};
static
const
WCHAR
getHoursW
[]
=
{
'g'
,
'e'
,
't'
,
'H'
,
'o'
,
'u'
,
'r'
,
's'
,
0
};
static
const
WCHAR
getUTCHoursW
[]
=
{
'g'
,
'e'
,
't'
,
'U'
,
'T'
,
'C'
,
'H'
,
'o'
,
'u'
,
'r'
,
's'
,
0
};
static
const
WCHAR
getMinutesW
[]
=
{
'g'
,
'e'
,
't'
,
'M'
,
'i'
,
'n'
,
'u'
,
't'
,
'e'
,
's'
,
0
};
static
const
WCHAR
getUTCMinutesW
[]
=
{
'g'
,
'e'
,
't'
,
'U'
,
'T'
,
'C'
,
'M'
,
'i'
,
'n'
,
'u'
,
't'
,
'e'
,
's'
,
0
};
static
const
WCHAR
getSecondsW
[]
=
{
'g'
,
'e'
,
't'
,
'S'
,
'e'
,
'c'
,
'o'
,
'n'
,
'd'
,
's'
,
0
};
static
const
WCHAR
getUTCSecondsW
[]
=
{
'g'
,
'e'
,
't'
,
'U'
,
'T'
,
'C'
,
'S'
,
'e'
,
'c'
,
'o'
,
'n'
,
'd'
,
's'
,
0
};
static
const
WCHAR
getMilisecondsW
[]
=
{
'g'
,
'e'
,
't'
,
'M'
,
'i'
,
'l'
,
'i'
,
's'
,
'e'
,
'c'
,
'o'
,
'n'
,
'd'
,
's'
,
0
};
static
const
WCHAR
getUTCMilisecondsW
[]
=
{
'g'
,
'e'
,
't'
,
'U'
,
'T'
,
'C'
,
'M'
,
'i'
,
'l'
,
'i'
,
's'
,
'e'
,
'c'
,
'o'
,
'n'
,
'd'
,
's'
,
0
};
static
const
WCHAR
getTimezoneOffsetW
[]
=
{
'g'
,
'e'
,
't'
,
'T'
,
'i'
,
'm'
,
'e'
,
'z'
,
'o'
,
'n'
,
'e'
,
'O'
,
'f'
,
'f'
,
's'
,
'e'
,
't'
,
0
};
static
const
WCHAR
setTimeW
[]
=
{
's'
,
'e'
,
't'
,
'T'
,
'i'
,
'm'
,
'e'
,
0
};
static
const
WCHAR
setMilisecondsW
[]
=
{
's'
,
'e'
,
't'
,
'M'
,
'i'
,
'l'
,
'i'
,
's'
,
'e'
,
'c'
,
'o'
,
'n'
,
'd'
,
's'
,
0
};
static
const
WCHAR
setUTCMilisecondsW
[]
=
{
's'
,
'e'
,
't'
,
'U'
,
'T'
,
'C'
,
'M'
,
'i'
,
'l'
,
'i'
,
's'
,
'e'
,
'c'
,
'o'
,
'n'
,
'd'
,
's'
,
0
};
static
const
WCHAR
setSecondsW
[]
=
{
's'
,
'e'
,
't'
,
'S'
,
'e'
,
'c'
,
'o'
,
'n'
,
'd'
,
's'
,
0
};
static
const
WCHAR
setUTCSecondsW
[]
=
{
's'
,
'e'
,
't'
,
'U'
,
'T'
,
'C'
,
'S'
,
'e'
,
'c'
,
'o'
,
'n'
,
'd'
,
's'
,
0
};
static
const
WCHAR
setMinutesW
[]
=
{
's'
,
'e'
,
't'
,
'M'
,
'i'
,
'n'
,
'u'
,
't'
,
'e'
,
's'
,
0
};
static
const
WCHAR
setUTCMinutesW
[]
=
{
's'
,
'e'
,
't'
,
'U'
,
'T'
,
'C'
,
'M'
,
'i'
,
'n'
,
'u'
,
't'
,
'e'
,
's'
,
0
};
static
const
WCHAR
setHoursW
[]
=
{
's'
,
'e'
,
't'
,
'H'
,
'o'
,
'u'
,
'r'
,
's'
,
0
};
static
const
WCHAR
setUTCHoursW
[]
=
{
's'
,
'e'
,
't'
,
'H'
,
'o'
,
'u'
,
'r'
,
's'
,
0
};
static
const
WCHAR
setDateW
[]
=
{
's'
,
'e'
,
't'
,
'D'
,
'a'
,
't'
,
'e'
,
0
};
static
const
WCHAR
setUTCDateW
[]
=
{
's'
,
'e'
,
't'
,
'U'
,
'T'
,
'C'
,
'D'
,
'a'
,
't'
,
'e'
,
0
};
static
const
WCHAR
setMonthW
[]
=
{
's'
,
'e'
,
't'
,
'M'
,
'o'
,
'n'
,
't'
,
'h'
,
0
};
static
const
WCHAR
setUTCMonthW
[]
=
{
's'
,
'e'
,
't'
,
'U'
,
'T'
,
'C'
,
'M'
,
'o'
,
'n'
,
't'
,
'h'
,
0
};
static
const
WCHAR
setFullYearW
[]
=
{
's'
,
'e'
,
't'
,
'F'
,
'u'
,
'l'
,
'l'
,
'Y'
,
'e'
,
'a'
,
'r'
,
0
};
static
const
WCHAR
setUTCFullYearW
[]
=
{
's'
,
'e'
,
't'
,
'U'
,
'T'
,
'C'
,
'F'
,
'u'
,
'l'
,
'l'
,
'Y'
,
'e'
,
'a'
,
'r'
,
0
};
static
inline
HRESULT
systime_to_time
(
const
SYSTEMTIME
*
st
,
FILETIME
*
time
)
{
return
SystemTimeToFileTime
(
st
,
time
)
?
S_OK
:
HRESULT_FROM_WIN32
(
GetLastError
());
}
static
HRESULT
Date_toString
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_toLocaleString
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_hasOwnProperty
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_propertyIsEnumerable
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_isPrototypeOf
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_valueOf
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_toUTCString
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_toDateString
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_toTimeString
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_toLocaleDateString
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_toLocaleTimeString
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getTime
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getFullYear
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getUTCFullYear
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getMonth
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getUTCMonth
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getDate
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getUTCDate
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getDay
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getUTCDay
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getHours
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getUTCHours
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getMinutes
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getUTCMinutes
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getSeconds
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getUTCSeconds
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getMiliseconds
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getUTCMiliseconds
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_getTimezoneOffset
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_setTime
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_setMiliseconds
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_setUTCMiliseconds
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_setSeconds
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_setUTCSeconds
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_setMinutes
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_setUTCMinutes
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_setHours
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_setUTCHours
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_setDate
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_setUTCDate
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_setMonth
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_setUTCMonth
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_setFullYear
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_setUTCFullYear
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
HRESULT
Date_value
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
caller
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
static
const
builtin_prop_t
Date_props
[]
=
{
{
getDateW
,
Date_getDate
,
PROPF_METHOD
},
{
getDayW
,
Date_getDay
,
PROPF_METHOD
},
{
getFullYearW
,
Date_getFullYear
,
PROPF_METHOD
},
{
getHoursW
,
Date_getHours
,
PROPF_METHOD
},
{
getMilisecondsW
,
Date_getMiliseconds
,
PROPF_METHOD
},
{
getMinutesW
,
Date_getMinutes
,
PROPF_METHOD
},
{
getMonthW
,
Date_getMonth
,
PROPF_METHOD
},
{
getSecondsW
,
Date_getSeconds
,
PROPF_METHOD
},
{
getTimeW
,
Date_getTime
,
PROPF_METHOD
},
{
getTimezoneOffsetW
,
Date_getTimezoneOffset
,
PROPF_METHOD
},
{
getUTCDateW
,
Date_getUTCDate
,
PROPF_METHOD
},
{
getUTCDayW
,
Date_getUTCDay
,
PROPF_METHOD
},
{
getUTCFullYearW
,
Date_getUTCFullYear
,
PROPF_METHOD
},
{
getUTCHoursW
,
Date_getUTCHours
,
PROPF_METHOD
},
{
getUTCMilisecondsW
,
Date_getUTCMiliseconds
,
PROPF_METHOD
},
{
getUTCMinutesW
,
Date_getUTCMinutes
,
PROPF_METHOD
},
{
getUTCMonthW
,
Date_getUTCMonth
,
PROPF_METHOD
},
{
getUTCSecondsW
,
Date_getUTCSeconds
,
PROPF_METHOD
},
{
hasOwnPropertyW
,
Date_hasOwnProperty
,
PROPF_METHOD
},
{
isPrototypeOfW
,
Date_isPrototypeOf
,
PROPF_METHOD
},
{
propertyIsEnumerableW
,
Date_propertyIsEnumerable
,
PROPF_METHOD
},
{
setDateW
,
Date_setDate
,
PROPF_METHOD
},
{
setFullYearW
,
Date_setFullYear
,
PROPF_METHOD
},
{
setHoursW
,
Date_setHours
,
PROPF_METHOD
},
{
setMilisecondsW
,
Date_setMiliseconds
,
PROPF_METHOD
},
{
setMinutesW
,
Date_setMinutes
,
PROPF_METHOD
},
{
setMonthW
,
Date_setMonth
,
PROPF_METHOD
},
{
setSecondsW
,
Date_setSeconds
,
PROPF_METHOD
},
{
setTimeW
,
Date_setTime
,
PROPF_METHOD
},
{
setUTCDateW
,
Date_setUTCDate
,
PROPF_METHOD
},
{
setUTCFullYearW
,
Date_setUTCFullYear
,
PROPF_METHOD
},
{
setUTCHoursW
,
Date_setUTCHours
,
PROPF_METHOD
},
{
setUTCMilisecondsW
,
Date_setUTCMiliseconds
,
PROPF_METHOD
},
{
setUTCMinutesW
,
Date_setUTCMinutes
,
PROPF_METHOD
},
{
setUTCMonthW
,
Date_setUTCMonth
,
PROPF_METHOD
},
{
setUTCSecondsW
,
Date_setUTCSeconds
,
PROPF_METHOD
},
{
toDateStringW
,
Date_toDateString
,
PROPF_METHOD
},
{
toLocaleDateStringW
,
Date_toLocaleDateString
,
PROPF_METHOD
},
{
toLocaleStringW
,
Date_toLocaleString
,
PROPF_METHOD
},
{
toLocaleTimeStringW
,
Date_toLocaleTimeString
,
PROPF_METHOD
},
{
toStringW
,
Date_toString
,
PROPF_METHOD
},
{
toTimeStringW
,
Date_toTimeString
,
PROPF_METHOD
},
{
toUTCStringW
,
Date_toUTCString
,
PROPF_METHOD
},
{
valueOfW
,
Date_valueOf
,
PROPF_METHOD
},
};
static
const
builtin_info_t
Date_info
=
{
JSCLASS_DATE
,
{
NULL
,
Date_value
,
0
},
sizeof
(
Date_props
)
/
sizeof
(
*
Date_props
),
Date_props
,
NULL
,
NULL
};
static
HRESULT
create_date
(
script_ctx_t
*
ctx
,
BOOL
use_constr
,
DispatchEx
**
ret
)
{
DateInstance
*
date
;
HRESULT
hres
;
date
=
heap_alloc_zero
(
sizeof
(
DateInstance
));
if
(
!
date
)
return
E_OUTOFMEMORY
;
if
(
use_constr
)
hres
=
init_dispex_from_constr
(
&
date
->
dispex
,
ctx
,
&
Date_info
,
ctx
->
date_constr
);
else
hres
=
init_dispex
(
&
date
->
dispex
,
ctx
,
&
Date_info
,
NULL
);
if
(
FAILED
(
hres
))
{
heap_free
(
date
);
return
hres
;
}
*
ret
=
&
date
->
dispex
;
return
S_OK
;
}
static
HRESULT
DateConstr_value
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
sp
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
}
HRESULT
create_date_constr
(
script_ctx_t
*
ctx
,
DispatchEx
**
ret
)
{
DispatchEx
*
date
;
HRESULT
hres
;
hres
=
create_date
(
ctx
,
FALSE
,
&
date
);
if
(
FAILED
(
hres
))
return
hres
;
hres
=
create_builtin_function
(
ctx
,
DateConstr_value
,
PROPF_CONSTR
,
date
,
ret
);
jsdisp_release
(
date
);
return
hres
;
}
dlls/jscript/global.c
View file @
84d8cddc
...
...
@@ -99,8 +99,9 @@ static HRESULT JSGlobal_Boolean(DispatchEx *dispex, LCID lcid, WORD flags, DISPP
static
HRESULT
JSGlobal_Date
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
VARIANT
*
retv
,
jsexcept_t
*
ei
,
IServiceProvider
*
sp
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
TRACE
(
"
\n
"
);
return
constructor_call
(
dispex
->
ctx
->
date_constr
,
lcid
,
flags
,
dp
,
retv
,
ei
,
sp
);
}
static
HRESULT
JSGlobal_Function
(
DispatchEx
*
dispex
,
LCID
lcid
,
WORD
flags
,
DISPPARAMS
*
dp
,
...
...
@@ -418,6 +419,10 @@ static HRESULT init_constructors(script_ctx_t *ctx)
if
(
FAILED
(
hres
))
return
hres
;
hres
=
create_date_constr
(
ctx
,
&
ctx
->
date_constr
);
if
(
FAILED
(
hres
))
return
hres
;
hres
=
create_number_constr
(
ctx
,
&
ctx
->
number_constr
);
if
(
FAILED
(
hres
))
return
hres
;
...
...
dlls/jscript/jscript.h
View file @
84d8cddc
...
...
@@ -67,6 +67,7 @@ typedef enum {
JSCLASS_NONE
,
JSCLASS_ARRAY
,
JSCLASS_BOOLEAN
,
JSCLASS_DATE
,
JSCLASS_FUNCTION
,
JSCLASS_GLOBAL
,
JSCLASS_MATH
,
...
...
@@ -170,6 +171,7 @@ struct _script_ctx_t {
DispatchEx
*
function_constr
;
DispatchEx
*
array_constr
;
DispatchEx
*
bool_constr
;
DispatchEx
*
date_constr
;
DispatchEx
*
number_constr
;
DispatchEx
*
object_constr
;
DispatchEx
*
regexp_constr
;
...
...
@@ -188,6 +190,7 @@ HRESULT init_function_constr(script_ctx_t*);
HRESULT
create_array_constr
(
script_ctx_t
*
,
DispatchEx
**
);
HRESULT
create_bool_constr
(
script_ctx_t
*
,
DispatchEx
**
);
HRESULT
create_date_constr
(
script_ctx_t
*
,
DispatchEx
**
);
HRESULT
create_number_constr
(
script_ctx_t
*
,
DispatchEx
**
);
HRESULT
create_object_constr
(
script_ctx_t
*
,
DispatchEx
**
);
HRESULT
create_regexp_constr
(
script_ctx_t
*
,
DispatchEx
**
);
...
...
dlls/jscript/tests/lang.js
View file @
84d8cddc
...
...
@@ -81,6 +81,8 @@ ok(Math !== undefined, "Math is undefined");
ok
(
Math
.
prototype
===
undefined
,
"Math.prototype is not undefined"
);
ok
(
Function
.
prototype
!==
undefined
,
"Function.prototype is undefined"
);
ok
(
Function
.
prototype
.
prototype
===
undefined
,
"Function.prototype is not undefined"
);
ok
(
Date
.
prototype
!==
undefined
,
"Date.prototype is undefined"
);
ok
(
Date
.
prototype
.
prototype
===
undefined
,
"Date.prototype is not undefined"
);
Function
.
prototype
.
test
=
true
;
ok
(
testFunc1
.
test
===
true
,
"testFunc1.test !== true"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment