Compare commits
339 Commits
tags/PreEC
...
CVS
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c5d6b83e4c | ||
|
|
f3548d4772 | ||
|
|
8633625794 | ||
|
|
9323b18962 | ||
|
|
d8ebef8633 | ||
|
|
d8ff43782f | ||
|
|
806e3f40cd | ||
|
|
b8febcc271 | ||
|
|
814809437c | ||
|
|
4d52510e79 | ||
|
|
440593ffd1 | ||
|
|
9827b1d455 | ||
|
|
19b5a1e558 | ||
|
|
1cd0327569 | ||
|
|
75a2c4fce1 | ||
|
|
6f9ff35120 | ||
|
|
7f58cc3a0b | ||
|
|
6277f3a3b3 | ||
|
|
a4a3169649 | ||
|
|
072fc1a666 | ||
|
|
0c627abfcd | ||
|
|
3185d0a81d | ||
|
|
4d423eecaf | ||
|
|
0317a9ec8d | ||
|
|
c8460fa4ce | ||
|
|
2fce42c8be | ||
|
|
34c5281c43 | ||
|
|
463f69ae27 | ||
|
|
8ebe80d3dc | ||
|
|
37a76d8a25 | ||
|
|
63bce01588 | ||
|
|
18e9b9d2f5 | ||
|
|
b3711cec39 | ||
|
|
dde9a9185e | ||
|
|
3f737c9dc4 | ||
|
|
873c0b8d47 | ||
|
|
2a3924d2e0 | ||
|
|
a542382c77 | ||
|
|
909afc64d2 | ||
|
|
270c5df832 | ||
|
|
da9f453e91 | ||
|
|
6bc5327b10 | ||
|
|
0acd8acee3 | ||
|
|
9c363797fa | ||
|
|
f0ad8b22a7 | ||
|
|
0abb41fb24 | ||
|
|
2d2a382150 | ||
|
|
74f7c311eb | ||
|
|
210deb53ba | ||
|
|
e121b35d4c | ||
|
|
3b846f9edf | ||
|
|
f2b4462a33 | ||
|
|
e68238933b | ||
|
|
49f795c9c9 | ||
|
|
bbc03d38ad | ||
|
|
eb9061c0ef | ||
|
|
093237bea8 | ||
|
|
9cbd053f44 | ||
|
|
789e4a6e68 | ||
|
|
b895b64505 | ||
|
|
3e56d44211 | ||
|
|
226a10c27a | ||
|
|
9259952dca | ||
|
|
d548e091c7 | ||
|
|
e623d0cd2b | ||
|
|
645b1aba54 | ||
|
|
9cb4c25b8a | ||
|
|
04a7745986 | ||
|
|
e33d697bbd | ||
|
|
3e4a7413ef | ||
|
|
e08fc8df48 | ||
|
|
9d3f958db2 | ||
|
|
4cb578fb28 | ||
|
|
067e9e08c7 | ||
|
|
b7e4e49c84 | ||
|
|
3007f63368 | ||
|
|
bc13612958 | ||
|
|
18d4872487 | ||
|
|
50fb78a575 | ||
|
|
43efe84083 | ||
|
|
14d9729d57 | ||
|
|
1c91cf67ee | ||
|
|
661f8f1993 | ||
|
|
33f38025b2 | ||
|
|
f59d48eecf | ||
|
|
36d221edd9 | ||
|
|
e39c37dd58 | ||
|
|
2975241aaf | ||
|
|
60280cb48a | ||
|
|
c89e48e233 | ||
|
|
af6d54dbdd | ||
|
|
ea6a04a363 | ||
|
|
9acc778e9e | ||
|
|
9b7d72b4f3 | ||
|
|
48263cb73e | ||
|
|
946d493f92 | ||
|
|
c7896988cd | ||
|
|
866322d95e | ||
|
|
8ba9c7c1f8 | ||
|
|
7491373c1e | ||
|
|
0a71d36864 | ||
|
|
5f745cfd66 | ||
|
|
1347e8f244 | ||
|
|
376ee7ffc4 | ||
|
|
c49f31fb70 | ||
|
|
064759d0a6 | ||
|
|
4cc8b798cc | ||
|
|
e8c68e85db | ||
|
|
2d2078838d | ||
|
|
06ca9ef5c4 | ||
|
|
a0aa1b960a | ||
|
|
34cb9deb75 | ||
|
|
6dfda342cc | ||
|
|
416447022b | ||
|
|
c5129bc74b | ||
|
|
59aaafb7d0 | ||
|
|
10a148d16b | ||
|
|
9c33ecf2b8 | ||
|
|
73b2bf9d78 | ||
|
|
78e2d8b9b1 | ||
|
|
c2335df585 | ||
|
|
28de62d660 | ||
|
|
d0d34df829 | ||
|
|
9c0c764b13 | ||
|
|
12a011a2e9 | ||
|
|
b893071648 | ||
|
|
6d496c35bf | ||
|
|
14334bc5ea | ||
|
|
22f1039803 | ||
|
|
a4426a97a5 | ||
|
|
8d5737519d | ||
|
|
b3785299ff | ||
|
|
821cb4f5b2 | ||
|
|
250dbce4cf | ||
|
|
3cadc697e1 | ||
|
|
eecbd2d60c | ||
|
|
d69c3be183 | ||
|
|
6aa6a226a0 | ||
|
|
683eda7a2e | ||
|
|
057541d810 | ||
|
|
1359dee773 | ||
|
|
fb48c801ad | ||
|
|
252994d3f4 | ||
|
|
579a822e8a | ||
|
|
17726547ac | ||
|
|
aae40a4d2d | ||
|
|
53caf671cb | ||
|
|
2aaf45465d | ||
|
|
36a43a236d | ||
|
|
309ba432a9 | ||
|
|
7f72e574c1 | ||
|
|
e3f84eb9e4 | ||
|
|
619a993e2c | ||
|
|
d272bf5abd | ||
|
|
fab3227026 | ||
|
|
1caffddc3f | ||
|
|
dad4df6919 | ||
|
|
332b7443db | ||
|
|
f347f08869 | ||
|
|
9083887386 | ||
|
|
7516584ad9 | ||
|
|
b1974e5540 | ||
|
|
d807cd69da | ||
|
|
b5cd4ed681 | ||
|
|
cb1644bdd6 | ||
|
|
e7a07c934b | ||
|
|
4353d33c01 | ||
|
|
4b07a41a74 | ||
|
|
2475291b21 | ||
|
|
928088a46d | ||
|
|
5c5ba7aa15 | ||
|
|
2b381da127 | ||
|
|
b0844bfd3a | ||
|
|
489f3fc875 | ||
|
|
e96f49b91f | ||
|
|
989168e646 | ||
|
|
caca355dec | ||
|
|
01e83014a6 | ||
|
|
dcd63f4da3 | ||
|
|
5132f68d26 | ||
|
|
9101132f9e | ||
|
|
c41e517028 | ||
|
|
fc95d0c6a1 | ||
|
|
6c0a9f5fc0 | ||
|
|
34e280d8c3 | ||
|
|
971976b8c4 | ||
|
|
93aed372f7 | ||
|
|
aa390e05d8 | ||
|
|
1a22e3ed7e | ||
|
|
1896cfefef | ||
|
|
410ce267d5 | ||
|
|
fcb9e9bf51 | ||
|
|
37e2169b4e | ||
|
|
2e8166fd64 | ||
|
|
3f42f06246 | ||
|
|
7519f0fc4c | ||
|
|
7062dc3e8b | ||
|
|
8c90b18f03 | ||
|
|
51c5a4e65e | ||
|
|
169ef88ab4 | ||
|
|
e0c55754d5 | ||
|
|
b7194daf71 | ||
|
|
01e298fd41 | ||
|
|
091955e9a0 | ||
|
|
76b98f20a7 | ||
|
|
51d691cc02 | ||
|
|
45e857d860 | ||
|
|
28bd74e177 | ||
|
|
eb73055cf6 | ||
|
|
2c17cc458b | ||
|
|
d10b7ecd53 | ||
|
|
028e053c7f | ||
|
|
252f4090ad | ||
|
|
9599670719 | ||
|
|
100e540599 | ||
|
|
b383080e9b | ||
|
|
f40460044c | ||
|
|
967990a454 | ||
|
|
120ec26f3b | ||
|
|
f686bba5d8 | ||
|
|
1d1cd2baaf | ||
|
|
b6030ceac7 | ||
|
|
258a2a6d4a | ||
|
|
2f38d972f2 | ||
|
|
afe30290c8 | ||
|
|
19cd8f1747 | ||
|
|
3ee2fa81c3 | ||
|
|
2ebb109791 | ||
|
|
8344cba9ee | ||
|
|
7c82b0b5f1 | ||
|
|
1f838ed9cc | ||
|
|
288ad892dc | ||
|
|
0067ebd9f5 | ||
|
|
3ed94d5f1f | ||
|
|
74de522d21 | ||
|
|
318689d640 | ||
|
|
06a85f06f3 | ||
|
|
fa0386eb21 | ||
|
|
980b8b883b | ||
|
|
b237b4f45e | ||
|
|
e5bf02a97b | ||
|
|
ffbff9e7c8 | ||
|
|
f07d66246d | ||
|
|
6c6ce1b3d7 | ||
|
|
c813db9f21 | ||
|
|
eb1e3503ae | ||
|
|
f62900eb59 | ||
|
|
0e926140f9 | ||
|
|
639989c1df | ||
|
|
78accf0d1a | ||
|
|
d7505330dd | ||
|
|
b166fe020d | ||
|
|
55f10b405f | ||
|
|
8bcbaf642c | ||
|
|
a5420e53d5 | ||
|
|
611923e583 | ||
|
|
4e84b82b51 | ||
|
|
865a79a1b5 | ||
|
|
5e7fed7a2f | ||
|
|
ed816f5fa6 | ||
|
|
da470df1ca | ||
|
|
4ff5cdca2a | ||
|
|
991d518e3e | ||
|
|
d8984b315e | ||
|
|
c5fccc649e | ||
|
|
419cb327c4 | ||
|
|
7860787b10 | ||
|
|
ccf37b21ec | ||
|
|
0ba95a928f | ||
|
|
569c87328e | ||
|
|
941d2435ba | ||
|
|
68944c6b5c | ||
|
|
1122546a7f | ||
|
|
b77b7f8e29 | ||
|
|
1eb33cb46e | ||
|
|
c0fbb70022 | ||
|
|
ec97378850 | ||
|
|
df2bf72c59 | ||
|
|
7527b7b206 | ||
|
|
a252dee761 | ||
|
|
05ab0a848d | ||
|
|
d0cd134272 | ||
|
|
e89f59cad5 | ||
|
|
dd050726f8 | ||
|
|
02f74ae132 | ||
|
|
a017529e6b | ||
|
|
7083308cff | ||
|
|
6430228b19 | ||
|
|
7ba4c213b3 | ||
|
|
84470b2c93 | ||
|
|
270ce881b4 | ||
|
|
173cc583c1 | ||
|
|
651e1ddd8a | ||
|
|
30e53d03e9 | ||
|
|
0a71bb415f | ||
|
|
daf51ae193 | ||
|
|
e20da712ec | ||
|
|
a4d81273ff | ||
|
|
931605d622 | ||
|
|
ba241132ea | ||
|
|
36bb330940 | ||
|
|
328d62f08f | ||
|
|
6a952509ef | ||
|
|
3295631735 | ||
|
|
f12855c796 | ||
|
|
121acfa205 | ||
|
|
01eb918031 | ||
|
|
63d606d58f | ||
|
|
8f331211d9 | ||
|
|
e2e17b4ff5 | ||
|
|
d5785373e3 | ||
|
|
1299fd6c0b | ||
|
|
7021f197de | ||
|
|
df37832d89 | ||
|
|
6d83d361f0 | ||
|
|
93c11dbc7d | ||
|
|
6a84236160 | ||
|
|
8b985c46d4 | ||
|
|
bd0a1b5cb4 | ||
|
|
b765a3d4c4 | ||
|
|
06ac17fb62 | ||
|
|
4dbf02b9bd | ||
|
|
da4d6e495b | ||
|
|
b6c93b5c5c | ||
|
|
6d6b3023f8 | ||
|
|
d31b3296a7 | ||
|
|
bb0622beb7 | ||
|
|
342865f5fe | ||
|
|
e6f4dfa6bc | ||
|
|
f52acaed14 | ||
|
|
888a71ee23 | ||
|
|
90932ba7f3 | ||
|
|
b845870367 | ||
|
|
c3b9e376e5 | ||
|
|
59ee43f7fc | ||
|
|
a30fed502d | ||
|
|
d65bc1efa0 | ||
|
|
932343b896 | ||
|
|
4443e74058 |
617
mozilla/htmlparser/src/nsAVLTree.cpp
Normal file
617
mozilla/htmlparser/src/nsAVLTree.cpp
Normal file
@@ -0,0 +1,617 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||
* compliance with the NPL. You may obtain a copy of the NPL at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
* for the specific language governing rights and limitations under the
|
||||
* NPL.
|
||||
*
|
||||
* The Initial Developer of this code under the NPL is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1999 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
|
||||
#include "nsAVLTree.h"
|
||||
|
||||
|
||||
enum eLean {eLeft,eNeutral,eRight};
|
||||
|
||||
struct NS_COM nsAVLNode {
|
||||
public:
|
||||
|
||||
nsAVLNode(void* aValue) {
|
||||
mLeft=0;
|
||||
mRight=0;
|
||||
mSkew=eNeutral;
|
||||
mValue=aValue;
|
||||
}
|
||||
|
||||
nsAVLNode* mLeft;
|
||||
nsAVLNode* mRight;
|
||||
eLean mSkew;
|
||||
void* mValue;
|
||||
};
|
||||
|
||||
|
||||
/************************************************************
|
||||
Now begin the tree class. Don't forget that the comparison
|
||||
between nodes must occur via the comparitor function,
|
||||
otherwise all you're testing is pointer addresses.
|
||||
************************************************************/
|
||||
|
||||
/** ------------------------------------------------
|
||||
*
|
||||
*
|
||||
* @update gess 4/22/98
|
||||
* @param
|
||||
* @return
|
||||
*/ //----------------------------------------------
|
||||
nsAVLTree::nsAVLTree(nsAVLNodeComparitor& aComparitor,
|
||||
nsAVLNodeFunctor* aDeallocator) :
|
||||
mComparitor(aComparitor), mDeallocator(aDeallocator) {
|
||||
mRoot=0;
|
||||
mCount=0;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
avlDeleteTree(nsAVLNode* aNode){
|
||||
if (aNode) {
|
||||
avlDeleteTree(aNode->mLeft);
|
||||
avlDeleteTree(aNode->mRight);
|
||||
delete aNode;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @update gess12/27/98
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
nsAVLTree::~nsAVLTree(){
|
||||
if (mDeallocator) {
|
||||
ForEachDepthFirst(*mDeallocator);
|
||||
}
|
||||
avlDeleteTree(mRoot);
|
||||
}
|
||||
|
||||
|
||||
class CDoesntExist: public nsAVLNodeFunctor {
|
||||
public:
|
||||
CDoesntExist(const nsAVLTree& anotherTree) : mOtherTree(anotherTree) {
|
||||
}
|
||||
virtual void* operator()(void* anItem) {
|
||||
void* result=mOtherTree.FindItem(anItem);
|
||||
if(result)
|
||||
return nsnull;
|
||||
return anItem;
|
||||
}
|
||||
protected:
|
||||
const nsAVLTree& mOtherTree;
|
||||
};
|
||||
|
||||
/**
|
||||
* This method compares two trees (members by identity).
|
||||
* @update gess12/27/98
|
||||
* @param tree to compare against
|
||||
* @return true if they are identical (contain same stuff).
|
||||
*/
|
||||
PRBool nsAVLTree::operator==(const nsAVLTree& aCopy) const{
|
||||
CDoesntExist functor(aCopy);
|
||||
void* theItem=FirstThat(functor);
|
||||
PRBool result=PRBool(!theItem);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @update gess12/27/98
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
static void
|
||||
avlRotateRight(nsAVLNode*& aRootNode){
|
||||
nsAVLNode* ptr2;
|
||||
nsAVLNode* ptr3;
|
||||
|
||||
ptr2=aRootNode->mRight;
|
||||
if(ptr2->mSkew==eRight) {
|
||||
aRootNode->mRight=ptr2->mLeft;
|
||||
ptr2->mLeft=aRootNode;
|
||||
aRootNode->mSkew=eNeutral;
|
||||
aRootNode=ptr2;
|
||||
}
|
||||
else {
|
||||
ptr3=ptr2->mLeft;
|
||||
ptr2->mLeft=ptr3->mRight;
|
||||
ptr3->mRight=ptr2;
|
||||
aRootNode->mRight=ptr3->mLeft;
|
||||
ptr3->mLeft=aRootNode;
|
||||
if(ptr3->mSkew==eLeft)
|
||||
ptr2->mSkew=eRight;
|
||||
else ptr2->mSkew=eNeutral;
|
||||
if(ptr3->mSkew==eRight)
|
||||
aRootNode->mSkew=eLeft;
|
||||
else aRootNode->mSkew=eNeutral;
|
||||
aRootNode=ptr3;
|
||||
}
|
||||
aRootNode->mSkew=eNeutral;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @update gess12/27/98
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
static void
|
||||
avlRotateLeft(nsAVLNode*& aRootNode){
|
||||
nsAVLNode* ptr2;
|
||||
nsAVLNode* ptr3;
|
||||
|
||||
ptr2=aRootNode->mLeft;
|
||||
if(ptr2->mSkew==eLeft) {
|
||||
aRootNode->mLeft=ptr2->mRight;
|
||||
ptr2->mRight=aRootNode;
|
||||
aRootNode->mSkew=eNeutral;
|
||||
aRootNode=ptr2;
|
||||
}
|
||||
else {
|
||||
ptr3=ptr2->mRight;
|
||||
ptr2->mRight=ptr3->mLeft;
|
||||
ptr3->mLeft=ptr2;
|
||||
aRootNode->mLeft=ptr3->mRight;
|
||||
ptr3->mRight=aRootNode;
|
||||
if(ptr3->mSkew==eRight)
|
||||
ptr2->mSkew=eLeft;
|
||||
else ptr2->mSkew=eNeutral;
|
||||
if(ptr3->mSkew==eLeft)
|
||||
aRootNode->mSkew=eRight;
|
||||
else aRootNode->mSkew=eNeutral;
|
||||
aRootNode=ptr3;
|
||||
}
|
||||
aRootNode->mSkew=eNeutral;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/** ------------------------------------------------
|
||||
*
|
||||
*
|
||||
* @update gess 4/22/98
|
||||
* @param
|
||||
* @return
|
||||
*/ //----------------------------------------------
|
||||
static eAVLStatus
|
||||
avlInsert(nsAVLNode*& aRootNode, nsAVLNode* aNewNode,
|
||||
nsAVLNodeComparitor& aComparitor) {
|
||||
eAVLStatus result=eAVL_unknown;
|
||||
|
||||
if(!aRootNode) {
|
||||
aRootNode = aNewNode;
|
||||
return eAVL_ok;
|
||||
}
|
||||
|
||||
if(aNewNode==aRootNode->mValue) {
|
||||
return eAVL_duplicate;
|
||||
}
|
||||
|
||||
PRInt32 theCompareResult=aComparitor(aRootNode->mValue,aNewNode->mValue);
|
||||
if(0 < theCompareResult) { //if(anItem<aRootNode->mValue)
|
||||
result=avlInsert(aRootNode->mLeft,aNewNode,aComparitor);
|
||||
if(eAVL_ok==result) {
|
||||
switch(aRootNode->mSkew){
|
||||
case eLeft:
|
||||
avlRotateLeft(aRootNode);
|
||||
result=eAVL_fail;
|
||||
break;
|
||||
case eRight:
|
||||
aRootNode->mSkew=eNeutral;
|
||||
result=eAVL_fail;
|
||||
break;
|
||||
case eNeutral:
|
||||
aRootNode->mSkew=eLeft;
|
||||
break;
|
||||
} //switch
|
||||
}//if
|
||||
} //if
|
||||
else {
|
||||
result=avlInsert(aRootNode->mRight,aNewNode,aComparitor);
|
||||
if(eAVL_ok==result) {
|
||||
switch(aRootNode->mSkew){
|
||||
case eLeft:
|
||||
aRootNode->mSkew=eNeutral;
|
||||
result=eAVL_fail;
|
||||
break;
|
||||
case eRight:
|
||||
avlRotateRight(aRootNode);
|
||||
result=eAVL_fail;
|
||||
break;
|
||||
case eNeutral:
|
||||
aRootNode->mSkew=eRight;
|
||||
break;
|
||||
} //switch
|
||||
}
|
||||
} //if
|
||||
return result;
|
||||
}
|
||||
|
||||
/** ------------------------------------------------
|
||||
*
|
||||
*
|
||||
* @update gess 4/22/98
|
||||
* @param
|
||||
* @return
|
||||
*/ //----------------------------------------------
|
||||
static void
|
||||
avlBalanceLeft(nsAVLNode*& aRootNode, PRBool& delOk){
|
||||
nsAVLNode* ptr2;
|
||||
nsAVLNode* ptr3;
|
||||
eLean balnc2;
|
||||
eLean balnc3;
|
||||
|
||||
switch(aRootNode->mSkew){
|
||||
case eLeft:
|
||||
ptr2=aRootNode->mLeft;
|
||||
balnc2=ptr2->mSkew;
|
||||
if(balnc2!=eRight) {
|
||||
aRootNode->mLeft=ptr2->mRight;
|
||||
ptr2->mRight=aRootNode;
|
||||
if(balnc2==eNeutral){
|
||||
aRootNode->mSkew=eLeft;
|
||||
ptr2->mSkew=eRight;
|
||||
delOk=PR_FALSE;
|
||||
}
|
||||
else{
|
||||
aRootNode->mSkew=eNeutral;
|
||||
ptr2->mSkew=eNeutral;
|
||||
}
|
||||
aRootNode=ptr2;
|
||||
}
|
||||
else{
|
||||
ptr3=ptr2->mRight;
|
||||
balnc3=ptr3->mSkew;
|
||||
ptr2->mRight=ptr3->mLeft;
|
||||
ptr3->mLeft=ptr2;
|
||||
aRootNode->mLeft=ptr3->mRight;
|
||||
ptr3->mRight=aRootNode;
|
||||
if(balnc3==eRight) {
|
||||
ptr2->mSkew=eLeft;
|
||||
}
|
||||
else {
|
||||
ptr2->mSkew=eNeutral;
|
||||
}
|
||||
if(balnc3==eLeft) {
|
||||
aRootNode->mSkew=eRight;
|
||||
}
|
||||
else {
|
||||
aRootNode->mSkew=eNeutral;
|
||||
}
|
||||
aRootNode=ptr3;
|
||||
ptr3->mSkew=eNeutral;
|
||||
}
|
||||
break;
|
||||
|
||||
case eRight:
|
||||
aRootNode->mSkew=eNeutral;
|
||||
break;
|
||||
|
||||
case eNeutral:
|
||||
aRootNode->mSkew=eLeft;
|
||||
delOk=PR_FALSE;
|
||||
break;
|
||||
}//switch
|
||||
return;
|
||||
}
|
||||
|
||||
/** ------------------------------------------------
|
||||
*
|
||||
*
|
||||
* @update gess 4/22/98
|
||||
* @param
|
||||
* @return
|
||||
*/ //----------------------------------------------
|
||||
static void
|
||||
avlBalanceRight(nsAVLNode*& aRootNode, PRBool& delOk){
|
||||
nsAVLNode* ptr2;
|
||||
nsAVLNode* ptr3;
|
||||
eLean balnc2;
|
||||
eLean balnc3;
|
||||
|
||||
switch(aRootNode->mSkew){
|
||||
case eLeft:
|
||||
aRootNode->mSkew=eNeutral;
|
||||
break;
|
||||
|
||||
case eRight:
|
||||
ptr2=aRootNode->mRight;
|
||||
balnc2=ptr2->mSkew;
|
||||
if(balnc2!=eLeft) {
|
||||
aRootNode->mRight=ptr2->mLeft;
|
||||
ptr2->mLeft=aRootNode;
|
||||
if(balnc2==eNeutral){
|
||||
aRootNode->mSkew=eRight;
|
||||
ptr2->mSkew=eLeft;
|
||||
delOk=PR_FALSE;
|
||||
}
|
||||
else{
|
||||
aRootNode->mSkew=eNeutral;
|
||||
ptr2->mSkew=eNeutral;
|
||||
}
|
||||
aRootNode=ptr2;
|
||||
}
|
||||
else{
|
||||
ptr3=ptr2->mLeft;
|
||||
balnc3=ptr3->mSkew;
|
||||
ptr2->mLeft=ptr3->mRight;
|
||||
ptr3->mRight=ptr2;
|
||||
aRootNode->mRight=ptr3->mLeft;
|
||||
ptr3->mLeft=aRootNode;
|
||||
if(balnc3==eLeft) {
|
||||
ptr2->mSkew=eRight;
|
||||
}
|
||||
else {
|
||||
ptr2->mSkew=eNeutral;
|
||||
}
|
||||
if(balnc3==eRight) {
|
||||
aRootNode->mSkew=eLeft;
|
||||
}
|
||||
else {
|
||||
aRootNode->mSkew=eNeutral;
|
||||
}
|
||||
aRootNode=ptr3;
|
||||
ptr3->mSkew=eNeutral;
|
||||
}
|
||||
break;
|
||||
|
||||
case eNeutral:
|
||||
aRootNode->mSkew=eRight;
|
||||
delOk=PR_FALSE;
|
||||
break;
|
||||
}//switch
|
||||
return;
|
||||
}
|
||||
|
||||
/** ------------------------------------------------
|
||||
*
|
||||
*
|
||||
* @update gess 4/22/98
|
||||
* @param
|
||||
* @return
|
||||
*/ //----------------------------------------------
|
||||
static eAVLStatus
|
||||
avlRemoveChildren(nsAVLNode*& aRootNode,nsAVLNode*& anotherNode, PRBool& delOk){
|
||||
eAVLStatus result=eAVL_ok;
|
||||
|
||||
if(!anotherNode->mRight){
|
||||
aRootNode->mValue=anotherNode->mValue; //swap
|
||||
anotherNode=anotherNode->mLeft;
|
||||
delOk=PR_TRUE;
|
||||
}
|
||||
else{
|
||||
avlRemoveChildren(aRootNode,anotherNode->mRight,delOk);
|
||||
if(delOk)
|
||||
avlBalanceLeft(anotherNode,delOk);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/** ------------------------------------------------
|
||||
*
|
||||
*
|
||||
* @update gess 4/22/98
|
||||
* @param
|
||||
* @return
|
||||
*/ //----------------------------------------------
|
||||
static eAVLStatus
|
||||
avlRemove(nsAVLNode*& aRootNode, void* anItem, PRBool& delOk,
|
||||
nsAVLNodeComparitor& aComparitor){
|
||||
eAVLStatus result=eAVL_ok;
|
||||
|
||||
if(!aRootNode)
|
||||
delOk=PR_FALSE;
|
||||
else {
|
||||
PRInt32 cmp=aComparitor(anItem,aRootNode->mValue);
|
||||
if(cmp<0){
|
||||
avlRemove(aRootNode->mLeft,anItem,delOk,aComparitor);
|
||||
if(delOk)
|
||||
avlBalanceRight(aRootNode,delOk);
|
||||
}
|
||||
else if(cmp>0){
|
||||
avlRemove(aRootNode->mRight,anItem,delOk,aComparitor);
|
||||
if(delOk)
|
||||
avlBalanceLeft(aRootNode,delOk);
|
||||
}
|
||||
else{ //they match...
|
||||
nsAVLNode* temp=aRootNode;
|
||||
if(!aRootNode->mRight) {
|
||||
aRootNode=aRootNode->mLeft;
|
||||
delOk=PR_TRUE;
|
||||
delete temp;
|
||||
}
|
||||
else if(!aRootNode->mLeft) {
|
||||
aRootNode=aRootNode->mRight;
|
||||
delOk=PR_TRUE;
|
||||
delete temp;
|
||||
}
|
||||
else {
|
||||
avlRemoveChildren(aRootNode,aRootNode->mLeft,delOk);
|
||||
if(delOk)
|
||||
avlBalanceRight(aRootNode,delOk);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/** ------------------------------------------------
|
||||
*
|
||||
*
|
||||
* @update gess 4/22/98
|
||||
* @param
|
||||
* @return
|
||||
*/ //----------------------------------------------
|
||||
eAVLStatus
|
||||
nsAVLTree::AddItem(void* anItem){
|
||||
eAVLStatus result=eAVL_ok;
|
||||
|
||||
nsAVLNode* theNewNode=new nsAVLNode(anItem);
|
||||
result=avlInsert(mRoot,theNewNode,mComparitor);
|
||||
if(eAVL_duplicate!=result)
|
||||
mCount++;
|
||||
else {
|
||||
delete theNewNode;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/** ------------------------------------------------
|
||||
*
|
||||
*
|
||||
* @update gess 4/22/98
|
||||
* @param
|
||||
* @return
|
||||
*/ //----------------------------------------------
|
||||
void* nsAVLTree::FindItem(void* aValue) const{
|
||||
nsAVLNode* result=mRoot;
|
||||
PRInt32 count=0;
|
||||
while(result) {
|
||||
count++;
|
||||
PRInt32 cmp=mComparitor(aValue,result->mValue);
|
||||
if(0==cmp) {
|
||||
//we matched...
|
||||
break;
|
||||
}
|
||||
else if(0>cmp){
|
||||
//theNode was greater...
|
||||
result=result->mLeft;
|
||||
}
|
||||
else {
|
||||
//aValue is greater...
|
||||
result=result->mRight;
|
||||
}
|
||||
}
|
||||
if(result) {
|
||||
return result->mValue;
|
||||
}
|
||||
return nsnull;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @update gess12/30/98
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
eAVLStatus
|
||||
nsAVLTree::RemoveItem(void* aValue){
|
||||
PRBool delOk=PR_TRUE;
|
||||
eAVLStatus result=avlRemove(mRoot,aValue,delOk,mComparitor);
|
||||
if(eAVL_ok==result)
|
||||
mCount--;
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @update gess9/11/98
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
static void
|
||||
avlForEachDepthFirst(nsAVLNode* aNode, nsAVLNodeFunctor& aFunctor){
|
||||
if(aNode) {
|
||||
avlForEachDepthFirst(aNode->mLeft,aFunctor);
|
||||
avlForEachDepthFirst(aNode->mRight,aFunctor);
|
||||
aFunctor(aNode->mValue);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @update gess9/11/98
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
void
|
||||
nsAVLTree::ForEachDepthFirst(nsAVLNodeFunctor& aFunctor) const{
|
||||
::avlForEachDepthFirst(mRoot,aFunctor);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @update gess9/11/98
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
static void
|
||||
avlForEach(nsAVLNode* aNode, nsAVLNodeFunctor& aFunctor) {
|
||||
if(aNode) {
|
||||
avlForEach(aNode->mLeft,aFunctor);
|
||||
aFunctor(aNode->mValue);
|
||||
avlForEach(aNode->mRight,aFunctor);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @update gess9/11/98
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
void
|
||||
nsAVLTree::ForEach(nsAVLNodeFunctor& aFunctor) const{
|
||||
::avlForEach(mRoot,aFunctor);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @update gess9/11/98
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
static void*
|
||||
avlFirstThat(nsAVLNode* aNode, nsAVLNodeFunctor& aFunctor) {
|
||||
void* result=nsnull;
|
||||
if(aNode) {
|
||||
result = avlFirstThat(aNode->mLeft,aFunctor);
|
||||
if (result) {
|
||||
return result;
|
||||
}
|
||||
result = aFunctor(aNode->mValue);
|
||||
if (result) {
|
||||
return result;
|
||||
}
|
||||
result = avlFirstThat(aNode->mRight,aFunctor);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @update gess9/11/98
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
void*
|
||||
nsAVLTree::FirstThat(nsAVLNodeFunctor& aFunctor) const{
|
||||
return ::avlFirstThat(mRoot,aFunctor);
|
||||
}
|
||||
|
||||
74
mozilla/htmlparser/src/nsAVLTree.h
Normal file
74
mozilla/htmlparser/src/nsAVLTree.h
Normal file
@@ -0,0 +1,74 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||
* compliance with the NPL. You may obtain a copy of the NPL at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
* for the specific language governing rights and limitations under the
|
||||
* NPL.
|
||||
*
|
||||
* The Initial Developer of this code under the NPL is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1999 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
|
||||
#ifndef nsAVLTree_h___
|
||||
#define nsAVLTree_h___
|
||||
|
||||
|
||||
#include "nscore.h"
|
||||
|
||||
|
||||
enum eAVLStatus {eAVL_unknown,eAVL_ok,eAVL_fail,eAVL_duplicate};
|
||||
|
||||
|
||||
struct nsAVLNode;
|
||||
|
||||
/**
|
||||
*
|
||||
* @update gess12/26/98
|
||||
* @param anObject1 is the first object to be compared
|
||||
* @param anObject2 is the second object to be compared
|
||||
* @return -1,0,1 if object1 is less, equal, greater than object2
|
||||
*/
|
||||
class NS_COM nsAVLNodeComparitor {
|
||||
public:
|
||||
virtual PRInt32 operator()(void* anItem1,void* anItem2)=0;
|
||||
};
|
||||
|
||||
class NS_COM nsAVLNodeFunctor {
|
||||
public:
|
||||
virtual void* operator()(void* anItem)=0;
|
||||
};
|
||||
|
||||
class NS_COM nsAVLTree {
|
||||
public:
|
||||
nsAVLTree(nsAVLNodeComparitor& aComparitor, nsAVLNodeFunctor* aDeallocator);
|
||||
~nsAVLTree(void);
|
||||
|
||||
PRBool operator==(const nsAVLTree& aOther) const;
|
||||
PRInt32 GetCount(void) const {return mCount;}
|
||||
|
||||
//main functions...
|
||||
eAVLStatus AddItem(void* anItem);
|
||||
eAVLStatus RemoveItem(void* anItem);
|
||||
void* FindItem(void* anItem) const;
|
||||
void ForEach(nsAVLNodeFunctor& aFunctor) const;
|
||||
void ForEachDepthFirst(nsAVLNodeFunctor& aFunctor) const;
|
||||
void* FirstThat(nsAVLNodeFunctor& aFunctor) const;
|
||||
|
||||
protected:
|
||||
|
||||
nsAVLNode* mRoot;
|
||||
PRInt32 mCount;
|
||||
nsAVLNodeComparitor& mComparitor;
|
||||
nsAVLNodeFunctor* mDeallocator;
|
||||
};
|
||||
|
||||
|
||||
#endif /* nsAVLTree_h___ */
|
||||
|
||||
@@ -1,123 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4-1.js
|
||||
ECMA Section: 15.4 Array Objects
|
||||
|
||||
Description: Every Array object has a length property whose value
|
||||
is always an integer with positive sign and less than
|
||||
Math.pow(2,32).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 28 october 1997
|
||||
|
||||
*/
|
||||
var SECTION = "15.4-1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Array Objects";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var myarr = new Array(); myarr[Math.pow(2,32)-2]='hi'; myarr[Math.pow(2,32)-2]",
|
||||
"hi",
|
||||
eval("var myarr = new Array(); myarr[Math.pow(2,32)-2]='hi'; myarr[Math.pow(2,32)-2]")
|
||||
);
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var myarr = new Array(); myarr[Math.pow(2,32)-2]='hi'; myarr.length",
|
||||
(Math.pow(2,32)-1),
|
||||
eval("var myarr = new Array(); myarr[Math.pow(2,32)-2]='hi'; myarr.length")
|
||||
);
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var myarr = new Array(); myarr[Math.pow(2,32)-3]='hi'; myarr[Math.pow(2,32)-3]",
|
||||
"hi",
|
||||
eval("var myarr = new Array(); myarr[Math.pow(2,32)-3]='hi'; myarr[Math.pow(2,32)-3]")
|
||||
);
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var myarr = new Array(); myarr[Math.pow(2,32)-3]='hi'; myarr.length",
|
||||
(Math.pow(2,32)-2),
|
||||
eval("var myarr = new Array(); myarr[Math.pow(2,32)-3]='hi'; myarr.length")
|
||||
);
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var myarr = new Array(); myarr[Math.pow(2,31)-2]='hi'; myarr[Math.pow(2,31)-2]",
|
||||
"hi",
|
||||
eval("var myarr = new Array(); myarr[Math.pow(2,31)-2]='hi'; myarr[Math.pow(2,31)-2]")
|
||||
);
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var myarr = new Array(); myarr[Math.pow(2,31)-2]='hi'; myarr.length",
|
||||
(Math.pow(2,31)-1),
|
||||
eval("var myarr = new Array(); myarr[Math.pow(2,31)-2]='hi'; myarr.length")
|
||||
);
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var myarr = new Array(); myarr[Math.pow(2,31)-1]='hi'; myarr[Math.pow(2,31)-1]",
|
||||
"hi",
|
||||
eval("var myarr = new Array(); myarr[Math.pow(2,31)-1]='hi'; myarr[Math.pow(2,31)-1]")
|
||||
);
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var myarr = new Array(); myarr[Math.pow(2,31)-1]='hi'; myarr.length",
|
||||
(Math.pow(2,31)),
|
||||
eval("var myarr = new Array(); myarr[Math.pow(2,31)-1]='hi'; myarr.length")
|
||||
);
|
||||
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var myarr = new Array(); myarr[Math.pow(2,31)]='hi'; myarr[Math.pow(2,31)]",
|
||||
"hi",
|
||||
eval("var myarr = new Array(); myarr[Math.pow(2,31)]='hi'; myarr[Math.pow(2,31)]")
|
||||
);
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var myarr = new Array(); myarr[Math.pow(2,31)]='hi'; myarr.length",
|
||||
(Math.pow(2,31)+1),
|
||||
eval("var myarr = new Array(); myarr[Math.pow(2,31)]='hi'; myarr.length")
|
||||
);
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var myarr = new Array(); myarr[Math.pow(2,30)-2]='hi'; myarr[Math.pow(2,30)-2]",
|
||||
"hi",
|
||||
eval("var myarr = new Array(); myarr[Math.pow(2,30)-2]='hi'; myarr[Math.pow(2,30)-2]")
|
||||
);
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var myarr = new Array(); myarr[Math.pow(2,30)-2]='hi'; myarr.length",
|
||||
(Math.pow(2,30)-1),
|
||||
eval("var myarr = new Array(); myarr[Math.pow(2,30)-2]='hi'; myarr.length")
|
||||
);
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4-2.js
|
||||
ECMA Section: 15.4 Array Objects
|
||||
|
||||
Description: Whenever a property is added whose name is an array
|
||||
index, the length property is changed, if necessary,
|
||||
to be one more than the numeric value of that array
|
||||
index; and whenever the length property is changed,
|
||||
every property whose name is an array index whose value
|
||||
is not smaller than the new length is automatically
|
||||
deleted. This constraint applies only to the Array
|
||||
object itself, and is unaffected by length or array
|
||||
index properties that may be inherited from its
|
||||
prototype.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 28 october 1997
|
||||
|
||||
*/
|
||||
var SECTION = "15.4-2";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Array Objects";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "var arr=new Array(); arr[Math.pow(2,16)] = 'hi'; arr.length", Math.pow(2,16)+1, eval("var arr=new Array(); arr[Math.pow(2,16)] = 'hi'; arr.length") );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "var arr=new Array(); arr[Math.pow(2,30)-2] = 'hi'; arr.length", Math.pow(2,30)-1, eval("var arr=new Array(); arr[Math.pow(2,30)-2] = 'hi'; arr.length") );
|
||||
array[item++] = new TestCase( SECTION, "var arr=new Array(); arr[Math.pow(2,30)-1] = 'hi'; arr.length", Math.pow(2,30), eval("var arr=new Array(); arr[Math.pow(2,30)-1] = 'hi'; arr.length") );
|
||||
array[item++] = new TestCase( SECTION, "var arr=new Array(); arr[Math.pow(2,30)] = 'hi'; arr.length", Math.pow(2,30)+1, eval("var arr=new Array(); arr[Math.pow(2,30)] = 'hi'; arr.length") );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "var arr=new Array(); arr[Math.pow(2,31)-2] = 'hi'; arr.length", Math.pow(2,31)-1, eval("var arr=new Array(); arr[Math.pow(2,31)-2] = 'hi'; arr.length") );
|
||||
array[item++] = new TestCase( SECTION, "var arr=new Array(); arr[Math.pow(2,31)-1] = 'hi'; arr.length", Math.pow(2,31), eval("var arr=new Array(); arr[Math.pow(2,31)-1] = 'hi'; arr.length") );
|
||||
array[item++] = new TestCase( SECTION, "var arr=new Array(); arr[Math.pow(2,31)] = 'hi'; arr.length", Math.pow(2,31)+1, eval("var arr=new Array(); arr[Math.pow(2,31)] = 'hi'; arr.length") );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "var arr = new Array(0,1,2,3,4,5); arr.length = 2; String(arr)", "0,1", eval("var arr = new Array(0,1,2,3,4,5); arr.length = 2; String(arr)") );
|
||||
array[item++] = new TestCase( SECTION, "var arr = new Array(0,1); arr.length = 3; String(arr)", "0,1,", eval("var arr = new Array(0,1); arr.length = 3; String(arr)") );
|
||||
// array[item++] = new TestCase( SECTION, "var arr = new Array(0,1,2,3,4,5); delete arr[0]; arr.length", 5, eval("var arr = new Array(0,1,2,3,4,5); delete arr[0]; arr.length") );
|
||||
// array[item++] = new TestCase( SECTION, "var arr = new Array(0,1,2,3,4,5); delete arr[6]; arr.length", 5, eval("var arr = new Array(0,1,2,3,4,5); delete arr[6]; arr.length") );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test( array ) {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,85 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.1.1.js
|
||||
ECMA Section: 15.4.1 Array( item0, item1,... )
|
||||
|
||||
Description: When Array is called as a function rather than as a
|
||||
constructor, it creates and initializes a new array
|
||||
object. Thus, the function call Array(...) is
|
||||
equivalent to the object creation new Array(...) with
|
||||
the same arguments.
|
||||
|
||||
An array is created and returned as if by the expression
|
||||
new Array( item0, item1, ... ).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
var SECTION = "15.4.1.1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Array Constructor Called as a Function";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function ToUint32( n ) {
|
||||
n = Number( n );
|
||||
if( isNaN(n) || n == 0 || n == Number.POSITIVE_INFINITY ||
|
||||
n == Number.NEGATIVE_INFINITY ) {
|
||||
return 0;
|
||||
}
|
||||
var sign = n < 0 ? -1 : 1;
|
||||
|
||||
return ( sign * ( n * Math.floor( Math.abs(n) ) ) ) % Math.pow(2, 32);
|
||||
}
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "typeof Array(1,2)", "object", typeof Array(1,2) );
|
||||
array[item++] = new TestCase( SECTION, "(Array(1,2)).toString", Array.prototype.toString, (Array(1,2)).toString );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var arr = Array(1,2,3); arr.toString = Object.prototype.toString; arr.toString()",
|
||||
"[object Array]",
|
||||
eval("var arr = Array(1,2,3); arr.toString = Object.prototype.toString; arr.toString()") );
|
||||
|
||||
|
||||
array[item++] = new TestCase( SECTION, "(Array(1,2)).length", 2, (Array(1,2)).length );
|
||||
array[item++] = new TestCase( SECTION, "var arr = (Array(1,2)); arr[0]", 1, eval("var arr = (Array(1,2)); arr[0]") );
|
||||
array[item++] = new TestCase( SECTION, "var arr = (Array(1,2)); arr[1]", 2, eval("var arr = (Array(1,2)); arr[1]") );
|
||||
array[item++] = new TestCase( SECTION, "var arr = (Array(1,2)); String(arr)", "1,2", eval("var arr = (Array(1,2)); String(arr)") );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,101 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.1.2.js
|
||||
ECMA Section: 15.4.1.2 Array(len)
|
||||
|
||||
Description: When Array is called as a function rather than as a
|
||||
constructor, it creates and initializes a new array
|
||||
object. Thus, the function call Array(...) is
|
||||
equivalent to the object creationi new Array(...) with
|
||||
the same arguments.
|
||||
|
||||
An array is created and returned as if by the
|
||||
expression new Array(len).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
var SECTION = "15.4.1.2";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Array Constructor Called as a Function: Array(len)";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "(Array()).length", 0, (Array()).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array(0)).length", 0, (Array(0)).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array(1)).length", 1, (Array(1)).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array(-1)).length", ToUint32(-1), (Array(-1)).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array(10)).length", 10, (Array(10)).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array('1')).length", 1, (Array('1')).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array(1000)).length", 1000, (Array(1000)).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array('1000')).length", 1, (Array('1000')).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array(4294967295)).length", ToUint32(4294967295), (Array(4294967295)).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array(4294967296)).length", ToUint32(4294967296), (Array(4294967296)).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array(4294967297)).length", ToUint32(4294967297), (Array(4294967297)).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array(Math.pow(2,31)-1)).length", ToUint32(Math.pow(2,31)-1), (Array(Math.pow(2,31)-1)).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array(Math.pow(2,31))).length", ToUint32(Math.pow(2,31)), (Array(Math.pow(2,31))).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array(Math.pow(2,31)+1)).length", ToUint32(Math.pow(2,31)+1), (Array(Math.pow(2,31)+1)).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array(8589934592)).length", ToUint32(8589934592), (Array(8589934592)).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array('8589934592')).length", 1, (Array("8589934592")).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array('4294967296')).length", 1, (Array("4294967296")).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array(3.14159)).length", ToUint32(3.14159), (Array(3.14159)).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array(-3.14159)).length", ToUint32(-3.14159), (Array(-3.14159)).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array(1073741823)).length", ToUint32(1073741823), (Array(1073741823)).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array(1073741824)).length", ToUint32(1073741824), (Array(1073741824)).length );
|
||||
array[item++] = new TestCase( SECTION, "(Array('a string')).length", 1, (Array("a string")).length );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
function ToUint32( n ) {
|
||||
n = Number( n );
|
||||
var sign = ( n < 0 ) ? -1 : 1;
|
||||
|
||||
if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) {
|
||||
return 0;
|
||||
}
|
||||
n = sign * Math.floor( Math.abs(n) )
|
||||
|
||||
n = n % Math.pow(2,32);
|
||||
|
||||
if ( n < 0 ){
|
||||
n += Math.pow(2,32);
|
||||
}
|
||||
|
||||
return ( n );
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.1.3.js
|
||||
ECMA Section: 15.4.1.3 Array()
|
||||
|
||||
Description: When Array is called as a function rather than as a
|
||||
constructor, it creates and initializes a new array
|
||||
object. Thus, the function call Array(...) is
|
||||
equivalent to the object creationi new Array(...) with
|
||||
the same arguments.
|
||||
|
||||
An array is created and returned as if by the
|
||||
expression new Array(len).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
var SECTION = "15.4.1.3";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Array Constructor Called as a Function: Array()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"typeof Array()",
|
||||
"object",
|
||||
typeof Array() );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"MYARR = new Array();MYARR.getClass = Object.prototype.toString;MYARR.getClass()",
|
||||
"[object Array]",
|
||||
eval("MYARR = Array();MYARR.getClass = Object.prototype.toString;MYARR.getClass()") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"(Array()).length",
|
||||
0, (
|
||||
Array()).length );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"Array().toString()",
|
||||
"",
|
||||
Array().toString() );
|
||||
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,130 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.1.js
|
||||
ECMA Section: 15.4.1 The Array Constructor Called as a Function
|
||||
|
||||
Description: When Array is called as a function rather than as a
|
||||
constructor, it creates and initializes a new array
|
||||
object. Thus, the function call Array(...) is
|
||||
equivalent to the object creationi new Array(...) with
|
||||
the same arguments.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.4.1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "The Array Constructor Called as a Function";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"Array() +''",
|
||||
"",
|
||||
Array() +"" );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"typeof Array()",
|
||||
"object",
|
||||
typeof Array() );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var arr = Array(); arr.getClass = Object.prototype.toString; arr.getClass()",
|
||||
"[object Array]",
|
||||
eval("var arr = Array(); arr.getClass = Object.prototype.toString; arr.getClass()") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var arr = Array(); arr.toString == Array.prototype.toString",
|
||||
true,
|
||||
eval("var arr = Array(); arr.toString == Array.prototype.toString") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"Array().length",
|
||||
0,
|
||||
Array().length );
|
||||
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"Array(1,2,3) +''",
|
||||
"1,2,3",
|
||||
Array(1,2,3) +"" );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"typeof Array(1,2,3)",
|
||||
"object",
|
||||
typeof Array(1,2,3) );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var arr = Array(1,2,3); arr.getClass = Object.prototype.toString; arr.getClass()",
|
||||
"[object Array]",
|
||||
eval("var arr = Array(1,2,3); arr.getClass = Object.prototype.toString; arr.getClass()") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var arr = Array(1,2,3); arr.toString == Array.prototype.toString",
|
||||
true,
|
||||
eval("var arr = Array(1,2,3); arr.toString == Array.prototype.toString") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"Array(1,2,3).length",
|
||||
3,
|
||||
Array(1,2,3).length );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"typeof Array(12345)",
|
||||
"object",
|
||||
typeof Array(12345) );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var arr = Array(12345); arr.getClass = Object.prototype.toString; arr.getClass()",
|
||||
"[object Array]",
|
||||
eval("var arr = Array(12345); arr.getClass = Object.prototype.toString; arr.getClass()") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var arr = Array(1,2,3,4,5); arr.toString == Array.prototype.toString",
|
||||
true,
|
||||
eval("var arr = Array(1,2,3,4,5); arr.toString == Array.prototype.toString") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"Array(12345).length",
|
||||
12345,
|
||||
Array(12345).length );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for (tc=0 ; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,89 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.2.1-1.js
|
||||
ECMA Section: 15.4.2.1 new Array( item0, item1, ... )
|
||||
Description: This description only applies of the constructor is
|
||||
given two or more arguments.
|
||||
|
||||
The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Array prototype object,
|
||||
the one that is the initial value of Array.prototype
|
||||
(15.4.3.1).
|
||||
|
||||
The [[Class]] property of the newly constructed object
|
||||
is set to "Array".
|
||||
|
||||
The length property of the newly constructed object is
|
||||
set to the number of arguments.
|
||||
|
||||
The 0 property of the newly constructed object is set
|
||||
to item0... in general, for as many arguments as there
|
||||
are, the k property of the newly constructed object is
|
||||
set to argument k, where the first argument is
|
||||
considered to be argument number 0.
|
||||
|
||||
This file tests the typeof the newly constructed object.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.4.2.1-1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "The Array Constructor: new Array( item0, item1, ...)";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "typeof new Array(1,2)", "object", typeof new Array(1,2) );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(1,2)).toString", Array.prototype.toString, (new Array(1,2)).toString );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var arr = new Array(1,2,3); arr.getClass = Object.prototype.toString; arr.getClass()",
|
||||
"[object Array]",
|
||||
eval("var arr = new Array(1,2,3); arr.getClass = Object.prototype.toString; arr.getClass()") );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "(new Array(1,2)).length", 2, (new Array(1,2)).length );
|
||||
array[item++] = new TestCase( SECTION, "var arr = (new Array(1,2)); arr[0]", 1, eval("var arr = (new Array(1,2)); arr[0]") );
|
||||
array[item++] = new TestCase( SECTION, "var arr = (new Array(1,2)); arr[1]", 2, eval("var arr = (new Array(1,2)); arr[1]") );
|
||||
array[item++] = new TestCase( SECTION, "var arr = (new Array(1,2)); String(arr)", "1,2", eval("var arr = (new Array(1,2)); String(arr)") );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.2.1-2.js
|
||||
ECMA Section: 15.4.2.1 new Array( item0, item1, ... )
|
||||
Description: This description only applies of the constructor is
|
||||
given two or more arguments.
|
||||
|
||||
The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Array prototype object,
|
||||
the one that is the initial value of Array.prototype
|
||||
(15.4.3.1).
|
||||
|
||||
The [[Class]] property of the newly constructed object
|
||||
is set to "Array".
|
||||
|
||||
The length property of the newly constructed object is
|
||||
set to the number of arguments.
|
||||
|
||||
The 0 property of the newly constructed object is set
|
||||
to item0... in general, for as many arguments as there
|
||||
are, the k property of the newly constructed object is
|
||||
set to argument k, where the first argument is
|
||||
considered to be argument number 0.
|
||||
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
var SECTION = "15.4.2.1-2";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "The Array Constructor: new Array( item0, item1, ...)";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
testcases = getTestCases();
|
||||
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
|
||||
var TEST_STRING = "new Array(";
|
||||
var ARGUMENTS = ""
|
||||
var TEST_LENGTH = Math.pow(2,10); //Math.pow(2,32);
|
||||
|
||||
for ( var index = 0; index < TEST_LENGTH; index++ ) {
|
||||
ARGUMENTS += index;
|
||||
ARGUMENTS += (index == (TEST_LENGTH-1) ) ? "" : ",";
|
||||
}
|
||||
|
||||
TEST_STRING += ARGUMENTS + ")";
|
||||
|
||||
TEST_ARRAY = eval( TEST_STRING );
|
||||
|
||||
for ( item = 0; item < TEST_LENGTH; item++ ) {
|
||||
array[item] = new TestCase( SECTION, "["+item+"]", item, TEST_ARRAY[item] );
|
||||
}
|
||||
|
||||
array[item++ ] = new TestCase( SECTION, "new Array( ["+TEST_LENGTH+" arguments] ) +''", ARGUMENTS, TEST_ARRAY +"" );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
@@ -1,109 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.2.1-3.js
|
||||
ECMA Section: 15.4.2.1 new Array( item0, item1, ... )
|
||||
Description: This description only applies of the constructor is
|
||||
given two or more arguments.
|
||||
|
||||
The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Array prototype object,
|
||||
the one that is the initial value of Array.prototype
|
||||
(15.4.3.1).
|
||||
|
||||
The [[Class]] property of the newly constructed object
|
||||
is set to "Array".
|
||||
|
||||
The length property of the newly constructed object is
|
||||
set to the number of arguments.
|
||||
|
||||
The 0 property of the newly constructed object is set
|
||||
to item0... in general, for as many arguments as there
|
||||
are, the k property of the newly constructed object is
|
||||
set to argument k, where the first argument is
|
||||
considered to be argument number 0.
|
||||
|
||||
This test stresses the number of arguments presented to
|
||||
the Array constructor. Should support up to Math.pow
|
||||
(2,32) arguments, since that is the maximum length of an
|
||||
ECMAScript array.
|
||||
|
||||
***Change TEST_LENGTH to Math.pow(2,32) when larger array
|
||||
lengths are supported.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
var SECTION = "15.4.2.1-3";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "The Array Constructor: new Array( item0, item1, ...)";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
|
||||
var TEST_STRING = "new Array(";
|
||||
var ARGUMENTS = ""
|
||||
var TEST_LENGTH = Math.pow(2,10); //Math.pow(2,32);
|
||||
|
||||
for ( var index = 0; index < TEST_LENGTH; index++ ) {
|
||||
ARGUMENTS += index;
|
||||
ARGUMENTS += (index == (TEST_LENGTH-1) ) ? "" : ",";
|
||||
}
|
||||
|
||||
TEST_STRING += ARGUMENTS + ")";
|
||||
|
||||
TEST_ARRAY = eval( TEST_STRING );
|
||||
|
||||
for ( item = 0; item < TEST_LENGTH; item++ ) {
|
||||
array[item] = new TestCase( SECTION, "TEST_ARRAY["+item+"]", item, TEST_ARRAY[item] );
|
||||
}
|
||||
|
||||
array[item++] = new TestCase( SECTION, "new Array( ["+TEST_LENGTH+" arguments] ) +''", ARGUMENTS, TEST_ARRAY +"" );
|
||||
array[item++] = new TestCase( SECTION, "TEST_ARRAY.toString", Array.prototype.toString, TEST_ARRAY.toString );
|
||||
array[item++] = new TestCase( SECTION, "TEST_ARRAY.join", Array.prototype.join, TEST_ARRAY.join );
|
||||
array[item++] = new TestCase( SECTION, "TEST_ARRAY.sort", Array.prototype.sort, TEST_ARRAY.sort );
|
||||
array[item++] = new TestCase( SECTION, "TEST_ARRAY.reverse", Array.prototype.reverse, TEST_ARRAY.reverse );
|
||||
array[item++] = new TestCase( SECTION, "TEST_ARRAY.length", TEST_LENGTH, TEST_ARRAY.length );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"TEST_ARRAY.toString = Object.prototype.toString; TEST_ARRAY.toString()",
|
||||
"[object Array]",
|
||||
eval("TEST_ARRAY.toString = Object.prototype.toString; TEST_ARRAY.toString()") );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,133 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.2.2-1.js
|
||||
ECMA Section: 15.4.2.2 new Array(len)
|
||||
|
||||
Description: This description only applies of the constructor is
|
||||
given two or more arguments.
|
||||
|
||||
The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Array prototype object,
|
||||
the one that is the initial value of Array.prototype(0)
|
||||
(15.4.3.1).
|
||||
|
||||
The [[Class]] property of the newly constructed object
|
||||
is set to "Array".
|
||||
|
||||
If the argument len is a number, then the length
|
||||
property of the newly constructed object is set to
|
||||
ToUint32(len).
|
||||
|
||||
If the argument len is not a number, then the length
|
||||
property of the newly constructed object is set to 1
|
||||
and the 0 property of the newly constructed object is
|
||||
set to len.
|
||||
|
||||
This file tests cases where len is a number.
|
||||
|
||||
The cases in this test need to be updated since the
|
||||
ToUint32 description has changed.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
var SECTION = "15.4.2.2-1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "The Array Constructor: new Array( len )";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "new Array(0)", "", (new Array(0)).toString() );
|
||||
array[item++] = new TestCase( SECTION, "typeof new Array(0)", "object", (typeof new Array(0)) );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(0)).length", 0, (new Array(0)).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(0)).toString", Array.prototype.toString, (new Array(0)).toString );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "new Array(1)", "", (new Array(1)).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Array(1).length", 1, (new Array(1)).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(1)).toString", Array.prototype.toString, (new Array(1)).toString );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "(new Array(Number.NaN)).length", 0, (new Array(Number.NaN)).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(Number.POSITIVE_INFINITY)).length", 0, (new Array(Number.POSITIVE_INFINITY)).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(Number.NEGATIVE_INFINITY)).length", 0, (new Array(Number.NEGATIVE_INFINITY)).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(-0)).length", 0, (new Array(-0)).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(0)).length", 0, (new Array(0)).length );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "(new Array(-1000)).length", ToUint32(-1000), (new Array(-1000)).length );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "(new Array(10)).length", 10, (new Array(10)).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array('1')).length", 1, (new Array('1')).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(1000)).length", 1000, (new Array(1000)).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array('1000')).length", 1, (new Array('1000')).length );
|
||||
|
||||
// array[item++] = new TestCase( SECTION, "(new Array(4294967295)).length", ToUint32(4294967295), (new Array(4294967295)).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(4294967296)).length", ToUint32(4294967296), (new Array(4294967296)).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(4294967297)).length", ToUint32(4294967297), (new Array(4294967297)).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(4294967298)).length", ToUint32(4294967298), (new Array(4294967298)).length );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "(new Array(8589934592)).length", ToUint32(8589934592), (new Array(8589934592)).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array('8589934592')).length", 1, (new Array("8589934592")).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array('4294967296')).length", 1, (new Array("4294967296")).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(3.14159)).length", ToUint32(3.14159), (new Array(3.14159)).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(-3.14159)).length", ToUint32(-3.14159), (new Array(-3.14159)).length );
|
||||
// array[item++] = new TestCase( SECTION, "(new Array(1073741823)).length", ToUint32(1073741823), (new Array(1073741823)).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(1073741824)).length", ToUint32(1073741824), (new Array(1073741824)).length );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed )
|
||||
? ""
|
||||
: "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
function ToUint32( n ) {
|
||||
n = Number( n );
|
||||
var sign = ( n < 0 ) ? -1 : 1;
|
||||
|
||||
if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY) {
|
||||
return 0;
|
||||
}
|
||||
n = sign * Math.floor( Math.abs(n) )
|
||||
|
||||
n = n % Math.pow(2,32);
|
||||
|
||||
if ( n < 0 ){
|
||||
n += Math.pow(2,32);
|
||||
}
|
||||
|
||||
return ( n );
|
||||
}
|
||||
@@ -1,86 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.2.2-2.js
|
||||
ECMA Section: 15.4.2.2 new Array(len)
|
||||
|
||||
Description: This description only applies of the constructor is
|
||||
given two or more arguments.
|
||||
|
||||
The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Array prototype object,
|
||||
the one that is the initial value of Array.prototype(0)
|
||||
(15.4.3.1).
|
||||
|
||||
The [[Class]] property of the newly constructed object
|
||||
is set to "Array".
|
||||
|
||||
If the argument len is a number, then the length
|
||||
property of the newly constructed object is set to
|
||||
ToUint32(len).
|
||||
|
||||
If the argument len is not a number, then the length
|
||||
property of the newly constructed object is set to 1
|
||||
and the 0 property of the newly constructed object is
|
||||
set to len.
|
||||
|
||||
This file tests length of the newly constructed array
|
||||
when len is not a number.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
var SECTION = "15.4.2.2-2";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "The Array Constructor: new Array( len )";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "(new Array(new Number(1073741823))).length", 1, (new Array(new Number(1073741823))).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(new Number(0))).length", 1, (new Array(new Number(0))).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(new Number(1000))).length", 1, (new Array(new Number(1000))).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array('mozilla, larryzilla, curlyzilla')).length", 1, (new Array('mozilla, larryzilla, curlyzilla')).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(true)).length", 1, (new Array(true)).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(false)).length", 1, (new Array(false)).length);
|
||||
array[item++] = new TestCase( SECTION, "(new Array(new Boolean(true)).length", 1, (new Array(new Boolean(true))).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(new Boolean(false)).length", 1, (new Array(new Boolean(false))).length );
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
testcases[tc].reason += ( testcases[tc].passed )
|
||||
? ""
|
||||
: "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.2.3.js
|
||||
ECMA Section: 15.4.2.3 new Array()
|
||||
Description: The [[Prototype]] property of the newly constructed
|
||||
object is set to the origianl Array prototype object,
|
||||
the one that is the initial value of Array.prototype.
|
||||
The [[Class]] property of the new object is set to
|
||||
"Array". The length of the object is set to 0.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.4.2.3";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "The Array Constructor: new Array()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
array[item++] = new TestCase( SECTION, "new Array() +''", "", (new Array()) +"" );
|
||||
array[item++] = new TestCase( SECTION, "typeof new Array()", "object", (typeof new Array()) );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var arr = new Array(); arr.getClass = Object.prototype.toString; arr.getClass()",
|
||||
"[object Array]",
|
||||
eval("var arr = new Array(); arr.getClass = Object.prototype.toString; arr.getClass()") );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "(new Array()).length", 0, (new Array()).length );
|
||||
array[item++] = new TestCase( SECTION, "(new Array()).toString == Array.prototype.toString", true, (new Array()).toString == Array.prototype.toString );
|
||||
array[item++] = new TestCase( SECTION, "(new Array()).join == Array.prototype.join", true, (new Array()).join == Array.prototype.join );
|
||||
array[item++] = new TestCase( SECTION, "(new Array()).reverse == Array.prototype.reverse", true, (new Array()).reverse == Array.prototype.reverse );
|
||||
array[item++] = new TestCase( SECTION, "(new Array()).sort == Array.prototype.sort", true, (new Array()).sort == Array.prototype.sort );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.3.1-1.js
|
||||
ECMA Section: 15.4.3.1 Array.prototype
|
||||
Description: The initial value of Array.prototype is the built-in
|
||||
Array prototype object (15.4.4).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.4.3.1-1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Array.prototype";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
var ARRAY_PROTO = Array.prototype;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "var props = ''; for ( p in Array ) { props += p } props", "", eval("var props = ''; for ( p in Array ) { props += p } props") );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Array.prototype = null; Array.prototype", ARRAY_PROTO, eval("Array.prototype = null; Array.prototype") );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "delete Array.prototype", false, delete Array.prototype );
|
||||
array[item++] = new TestCase( SECTION, "delete Array.prototype; Array.prototype", ARRAY_PROTO, eval("delete Array.prototype; Array.prototype") );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.3.2.js
|
||||
ECMA Section: 15.4.3.2 Array.length
|
||||
Description: The length property is 1.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.4.3.2";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Array.length";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
array[item++] = new TestCase( SECTION, "Array.length", 1, Array.length );
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.3.js
|
||||
ECMA Section: 15.4.3 Properties of the Array Constructor
|
||||
Description: The value of the internal [[Prototype]] property of the
|
||||
Array constructor is the Function prototype object.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.4.3";
|
||||
var VERSION = "ECMA_2";
|
||||
startTest();
|
||||
var TITLE = "Properties of the Array Constructor";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Array.__proto__", Function.prototype, Array.__proto__ );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for (tc=0 ; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
|
||||
stopTest();
|
||||
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.4.1.js
|
||||
ECMA Section: 15.4.4.1 Array.prototype.constructor
|
||||
Description: The initial value of Array.prototype.constructor
|
||||
is the built-in Array constructor.
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.4.4.1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Array.prototype.constructor";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
array[item++] = new TestCase( SECTION, "Array.prototype.constructor == Array", true, Array.prototype.constructor == Array);
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for (tc=0 ; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.4.2.js
|
||||
ECMA Section: 15.4.4.2 Array.prototype.toString()
|
||||
Description: The elements of this object are converted to strings
|
||||
and these strings are then concatenated, separated by
|
||||
comma characters. The result is the same as if the
|
||||
built-in join method were invoiked for this object
|
||||
with no argument.
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.4.4.2";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Array.prototype.toString";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Array.prototype.toString.length", 0, Array.prototype.toString.length );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "(new Array()).toString()", "", (new Array()).toString() );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(2)).toString()", ",", (new Array(2)).toString() );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(0,1)).toString()", "0,1", (new Array(0,1)).toString() );
|
||||
array[item++] = new TestCase( SECTION, "(new Array( Number.NaN, Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY)).toString()", "NaN,Infinity,-Infinity", (new Array( Number.NaN, Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY)).toString() );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "(new Array( Boolean(1), Boolean(0))).toString()", "true,false", (new Array(Boolean(1),Boolean(0))).toString() );
|
||||
array[item++] = new TestCase( SECTION, "(new Array(void 0,null)).toString()", ",", (new Array(void 0,null)).toString() );
|
||||
|
||||
var EXPECT_STRING = "";
|
||||
var MYARR = new Array();
|
||||
|
||||
for ( var i = -50; i < 50; i+= 0.25 ) {
|
||||
MYARR[MYARR.length] = i;
|
||||
EXPECT_STRING += i +",";
|
||||
}
|
||||
|
||||
EXPECT_STRING = EXPECT_STRING.substring( 0, EXPECT_STRING.length -1 );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "MYARR.toString()", EXPECT_STRING, MYARR.toString() );
|
||||
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0 ; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,151 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.4.3-1.js
|
||||
ECMA Section: 15.4.4.3-1 Array.prototype.join()
|
||||
Description: The elements of this object are converted to strings
|
||||
and these strings are then concatenated, separated by
|
||||
comma characters. The result is the same as if the
|
||||
built-in join method were invoiked for this object
|
||||
with no argument.
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.4.4.3-1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
|
||||
writeHeaderToLog( SECTION + " Array.prototype.join()");
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
var ARR_PROTOTYPE = Array.prototype;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Array.prototype.join.length", 1, Array.prototype.join.length );
|
||||
array[item++] = new TestCase( SECTION, "delete Array.prototype.join.length", false, delete Array.prototype.join.length );
|
||||
array[item++] = new TestCase( SECTION, "delete Array.prototype.join.length; Array.prototype.join.length", 1, eval("delete Array.prototype.join.length; Array.prototype.join.length") );
|
||||
|
||||
// case where array length is 0
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var TEST_ARRAY = new Array(); TEST_ARRAY.join()",
|
||||
"",
|
||||
eval("var TEST_ARRAY = new Array(); TEST_ARRAY.join()") );
|
||||
|
||||
// array length is 0, but spearator is specified
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var TEST_ARRAY = new Array(); TEST_ARRAY.join(' ')",
|
||||
"",
|
||||
eval("var TEST_ARRAY = new Array(); TEST_ARRAY.join(' ')") );
|
||||
|
||||
// length is greater than 0, separator is supplied
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var TEST_ARRAY = new Array(null, void 0, true, false, 123, new Object(), new Boolean(true) ); TEST_ARRAY.join('&')",
|
||||
"&&true&false&123&[object Object]&true",
|
||||
eval("var TEST_ARRAY = new Array(null, void 0, true, false, 123, new Object(), new Boolean(true) ); TEST_ARRAY.join('&')") );
|
||||
|
||||
// length is greater than 0, separator is empty string
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var TEST_ARRAY = new Array(null, void 0, true, false, 123, new Object(), new Boolean(true) ); TEST_ARRAY.join('')",
|
||||
"truefalse123[object Object]true",
|
||||
eval("var TEST_ARRAY = new Array(null, void 0, true, false, 123, new Object(), new Boolean(true) ); TEST_ARRAY.join('')") );
|
||||
// length is greater than 0, separator is undefined
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var TEST_ARRAY = new Array(null, void 0, true, false, 123, new Object(), new Boolean(true) ); TEST_ARRAY.join(void 0)",
|
||||
"undefinedundefinedtrueundefinedfalseundefined123undefined[object Object]undefinedtrue",
|
||||
eval("var TEST_ARRAY = new Array(null, void 0, true, false, 123, new Object(), new Boolean(true) ); TEST_ARRAY.join(void 0)") );
|
||||
|
||||
// length is greater than 0, separator is not supplied
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var TEST_ARRAY = new Array(null, void 0, true, false, 123, new Object(), new Boolean(true) ); TEST_ARRAY.join()",
|
||||
",,true,false,123,[object Object],true",
|
||||
eval("var TEST_ARRAY = new Array(null, void 0, true, false, 123, new Object(), new Boolean(true) ); TEST_ARRAY.join()") );
|
||||
|
||||
// separator is a control character
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var TEST_ARRAY = new Array(null, void 0, true, false, 123, new Object(), new Boolean(true) ); TEST_ARRAY.join('\v')",
|
||||
unescape("%u000B%u000Btrue%u000Bfalse%u000B123%u000B[object Object]%u000Btrue"),
|
||||
eval("var TEST_ARRAY = new Array(null, void 0, true, false, 123, new Object(), new Boolean(true) ); TEST_ARRAY.join('\v')") );
|
||||
|
||||
// length of array is 1
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var TEST_ARRAY = new Array(true) ); TEST_ARRAY.join('\v')",
|
||||
"true",
|
||||
eval("var TEST_ARRAY = new Array(true); TEST_ARRAY.join('\v')") );
|
||||
|
||||
|
||||
SEPARATOR = "\t"
|
||||
TEST_LENGTH = 100;
|
||||
TEST_STRING = "";
|
||||
ARGUMENTS = "";
|
||||
TEST_RESULT = "";
|
||||
|
||||
for ( var index = 0; index < TEST_LENGTH; index++ ) {
|
||||
ARGUMENTS += index;
|
||||
ARGUMENTS += ( index == TEST_LENGTH -1 ) ? "" : ",";
|
||||
|
||||
TEST_RESULT += index;
|
||||
TEST_RESULT += ( index == TEST_LENGTH -1 ) ? "" : SEPARATOR;
|
||||
}
|
||||
|
||||
TEST_ARRAY = eval( "new Array( "+ARGUMENTS +")" );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "TEST_ARRAY.join("+SEPARATOR+")", TEST_RESULT, TEST_ARRAY.join( SEPARATOR ) );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "(new Array( Boolean(true), Boolean(false), null, void 0, Number(1e+21), Number(1e-7))).join()",
|
||||
"true,false,,,1e+21,1e-7",
|
||||
(new Array( Boolean(true), Boolean(false), null, void 0, Number(1e+21), Number(1e-7))).join() );
|
||||
|
||||
// this is not an Array object
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var OB = new Object_1('true,false,111,0.5,1.23e6,NaN,void 0,null'); OB.join(':')",
|
||||
"true:false:111:0.5:1230000:NaN::",
|
||||
eval("var OB = new Object_1('true,false,111,0.5,1.23e6,NaN,void 0,null'); OB.join(':')") );
|
||||
|
||||
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
function Object_1( value ) {
|
||||
this.array = value.split(",");
|
||||
this.length = this.array.length;
|
||||
for ( var i = 0; i < this.length; i++ ) {
|
||||
this[i] = eval(this.array[i]);
|
||||
}
|
||||
this.join = Array.prototype.join;
|
||||
this.getClass = Object.prototype.toString;
|
||||
}
|
||||
@@ -1,269 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.4.3-1.js
|
||||
ECMA Section: 15.4.4.3-1 Array.prototype.reverse()
|
||||
Description:
|
||||
|
||||
The elements of the array are rearranged so as to reverse their order.
|
||||
This object is returned as the result of the call.
|
||||
|
||||
1. Call the [[Get]] method of this object with argument "length".
|
||||
2. Call ToUint32(Result(1)).
|
||||
3. Compute floor(Result(2)/2).
|
||||
4. Let k be 0.
|
||||
5. If k equals Result(3), return this object.
|
||||
6. Compute Result(2)k1.
|
||||
7. Call ToString(k).
|
||||
8. ToString(Result(6)).
|
||||
9. Call the [[Get]] method of this object with argument Result(7).
|
||||
10. Call the [[Get]] method of this object with argument Result(8).
|
||||
11. If this object has a property named by Result(8), go to step 12; but
|
||||
if this object has no property named by Result(8), then go to either
|
||||
step 12 or step 14, depending on the implementation.
|
||||
12. Call the [[Put]] method of this object with arguments Result(7) and
|
||||
Result(10).
|
||||
13. Go to step 15.
|
||||
14. Call the [[Delete]] method on this object, providing Result(7) as the
|
||||
name of the property to delete.
|
||||
15. If this object has a property named by Result(7), go to step 16; but if
|
||||
this object has no property named by Result(7), then go to either step 16
|
||||
or step 18, depending on the implementation.
|
||||
16. Call the [[Put]] method of this object with arguments Result(8) and
|
||||
Result(9).
|
||||
17. Go to step 19.
|
||||
18. Call the [[Delete]] method on this object, providing Result(8) as the
|
||||
name of the property to delete.
|
||||
19. Increase k by 1.
|
||||
20. Go to step 5.
|
||||
|
||||
Note that the reverse function is intentionally generic; it does not require
|
||||
that its this value be an Array object. Therefore it can be transferred to other
|
||||
kinds of objects for use as a method. Whether the reverse function can be applied
|
||||
successfully to a host object is implementation dependent.
|
||||
|
||||
Note: Array.prototype.reverse allows some flexibility in implementation
|
||||
regarding array indices that have not been populated. This test covers the
|
||||
cases in which unpopulated indices are not deleted, since the JavaScript
|
||||
implementation does not delete uninitialzed indices.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
var SECTION = "15.4.4.4-1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var BUGNUMBER="123724";
|
||||
|
||||
writeHeaderToLog( SECTION + " Array.prototype.reverse()");
|
||||
|
||||
var testcases = new Array();
|
||||
getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var ARR_PROTOTYPE = Array.prototype;
|
||||
|
||||
testcases[testcases.length] = new TestCase( SECTION, "Array.prototype.reverse.length", 0, Array.prototype.reverse.length );
|
||||
testcases[testcases.length] = new TestCase( SECTION, "delete Array.prototype.reverse.length", false, delete Array.prototype.reverse.length );
|
||||
testcases[testcases.length] = new TestCase( SECTION, "delete Array.prototype.reverse.length; Array.prototype.reverse.length", 0, eval("delete Array.prototype.reverse.length; Array.prototype.reverse.length") );
|
||||
|
||||
// length of array is 0
|
||||
testcases[testcases.length] = new TestCase( SECTION,
|
||||
"var A = new Array(); A.reverse(); A.length",
|
||||
0,
|
||||
eval("var A = new Array(); A.reverse(); A.length") );
|
||||
|
||||
// length of array is 1
|
||||
var A = new Array(true);
|
||||
var R = Reverse(A);
|
||||
|
||||
testcases[testcases.length] = new TestCase( SECTION,
|
||||
"var A = new Array(true); A.reverse(); A.length",
|
||||
R.length,
|
||||
eval("var A = new Array(true); A.reverse(); A.length") );
|
||||
CheckItems( R, A );
|
||||
|
||||
// length of array is 2
|
||||
var S = "var A = new Array( true,false )";
|
||||
eval(S);
|
||||
var R = Reverse(A);
|
||||
|
||||
testcases[testcases.length] = new TestCase(
|
||||
SECTION,
|
||||
S +"; A.reverse(); A.length",
|
||||
R.length,
|
||||
eval( S + "; A.reverse(); A.length") );
|
||||
|
||||
CheckItems( R, A );
|
||||
|
||||
// length of array is 3
|
||||
var S = "var A = new Array( true,false,null )";
|
||||
eval(S);
|
||||
var R = Reverse(A);
|
||||
|
||||
testcases[testcases.length] = new TestCase( SECTION,
|
||||
S +"; A.reverse(); A.length",
|
||||
R.length,
|
||||
eval( S + "; A.reverse(); A.length") );
|
||||
CheckItems( R, A );
|
||||
|
||||
// length of array is 4
|
||||
var S = "var A = new Array( true,false,null,void 0 )";
|
||||
eval(S);
|
||||
var R = Reverse(A);
|
||||
|
||||
testcases[testcases.length] = new TestCase( SECTION,
|
||||
S +"; A.reverse(); A.length",
|
||||
R.length,
|
||||
eval( S + "; A.reverse(); A.length") );
|
||||
CheckItems( R, A );
|
||||
|
||||
|
||||
// some array indexes have not been set
|
||||
var S = "var A = new Array(); A[8] = 'hi', A[3] = 'yo'";
|
||||
eval(S);
|
||||
var R = Reverse(A);
|
||||
|
||||
testcases[testcases.length] = new TestCase( SECTION,
|
||||
S +"; A.reverse(); A.length",
|
||||
R.length,
|
||||
eval( S + "; A.reverse(); A.length") );
|
||||
CheckItems( R, A );
|
||||
|
||||
|
||||
var OBJECT_OBJECT = new Object();
|
||||
var FUNCTION_OBJECT = new Function( 'return this' );
|
||||
var BOOLEAN_OBJECT = new Boolean;
|
||||
var DATE_OBJECT = new Date(0);
|
||||
var STRING_OBJECT = new String('howdy');
|
||||
var NUMBER_OBJECT = new Number(Math.PI);
|
||||
var ARRAY_OBJECT= new Array(1000);
|
||||
|
||||
var args = "null, void 0, Math.pow(2,32), 1.234e-32, OBJECT_OBJECT, BOOLEAN_OBJECT, FUNCTION_OBJECT, DATE_OBJECT, STRING_OBJECT,"+
|
||||
"ARRAY_OBJECT, NUMBER_OBJECT, Math, true, false, 123, '90210'";
|
||||
|
||||
var S = "var A = new Array("+args+")";
|
||||
eval(S);
|
||||
var R = Reverse(A);
|
||||
|
||||
testcases[testcases.length] = new TestCase( SECTION,
|
||||
S +"; A.reverse(); A.length",
|
||||
R.length,
|
||||
eval( S + "; A.reverse(); A.length") );
|
||||
CheckItems( R, A );
|
||||
|
||||
var limit = 1000;
|
||||
var args = "";
|
||||
for (var i = 0; i < limit; i++ ) {
|
||||
args += i +"";
|
||||
if ( i + 1 < limit ) {
|
||||
args += ",";
|
||||
}
|
||||
}
|
||||
|
||||
var S = "var A = new Array("+args+")";
|
||||
eval(S);
|
||||
var R = Reverse(A);
|
||||
|
||||
testcases[testcases.length] = new TestCase( SECTION,
|
||||
S +"; A.reverse(); A.length",
|
||||
R.length,
|
||||
eval( S + "; A.reverse(); A.length") );
|
||||
CheckItems( R, A );
|
||||
|
||||
var S = "var MYOBJECT = new Object_1( \"void 0, 1, null, 2, \'\'\" )";
|
||||
eval(S);
|
||||
var R = Reverse( A );
|
||||
|
||||
testcases[testcases.length] = new TestCase( SECTION,
|
||||
S +"; A.reverse(); A.length",
|
||||
R.length,
|
||||
eval( S + "; A.reverse(); A.length") );
|
||||
CheckItems( R, A );
|
||||
|
||||
return ( testcases );
|
||||
}
|
||||
function CheckItems( R, A ) {
|
||||
for ( var i = 0; i < R.length; i++ ) {
|
||||
testcases[testcases.length] = new TestCase(
|
||||
SECTION,
|
||||
"A["+i+ "]",
|
||||
R[i],
|
||||
A[i] );
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
function Object_1( value ) {
|
||||
this.array = value.split(",");
|
||||
this.length = this.array.length;
|
||||
for ( var i = 0; i < this.length; i++ ) {
|
||||
this[i] = eval(this.array[i]);
|
||||
}
|
||||
this.join = Array.prototype.reverse;
|
||||
this.getClass = Object.prototype.toString;
|
||||
}
|
||||
function Reverse( array ) {
|
||||
var r2 = array.length;
|
||||
var k = 0;
|
||||
var r3 = Math.floor( r2/2 );
|
||||
if ( r3 == k ) {
|
||||
return array;
|
||||
}
|
||||
|
||||
for ( k = 0; k < r3; k++ ) {
|
||||
var r6 = r2 - k - 1;
|
||||
// var r7 = String( k );
|
||||
var r7 = k;
|
||||
var r8 = String( r6 );
|
||||
|
||||
var r9 = array[r7];
|
||||
var r10 = array[r8];
|
||||
|
||||
array[r7] = r10;
|
||||
array[r8] = r9;
|
||||
}
|
||||
|
||||
return array;
|
||||
}
|
||||
function Iterate( array ) {
|
||||
for ( var i = 0; i < array.length; i++ ) {
|
||||
// print( i+": "+ array[String(i)] );
|
||||
}
|
||||
}
|
||||
|
||||
function Object_1( value ) {
|
||||
this.array = value.split(",");
|
||||
this.length = this.array.length;
|
||||
for ( var i = 0; i < this.length; i++ ) {
|
||||
this[i] = this.array[i];
|
||||
}
|
||||
this.reverse = Array.prototype.reverse;
|
||||
this.getClass = Object.prototype.toString;
|
||||
}
|
||||
@@ -1,160 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.4.3-1.js
|
||||
ECMA Section: 15.4.4.3-1 Array.prototype.reverse()
|
||||
Description:
|
||||
|
||||
The elements of the array are rearranged so as to reverse their order.
|
||||
This object is returned as the result of the call.
|
||||
|
||||
1. Call the [[Get]] method of this object with argument "length".
|
||||
2. Call ToUint32(Result(1)).
|
||||
3. Compute floor(Result(2)/2).
|
||||
4. Let k be 0.
|
||||
5. If k equals Result(3), return this object.
|
||||
6. Compute Result(2)k1.
|
||||
7. Call ToString(k).
|
||||
8. ToString(Result(6)).
|
||||
9. Call the [[Get]] method of this object with argument Result(7).
|
||||
10. Call the [[Get]] method of this object with argument Result(8).
|
||||
11. If this object has a property named by Result(8), go to step 12; but
|
||||
if this object has no property named by Result(8), then go to either
|
||||
step 12 or step 14, depending on the implementation.
|
||||
12. Call the [[Put]] method of this object with arguments Result(7) and
|
||||
Result(10).
|
||||
13. Go to step 15.
|
||||
14. Call the [[Delete]] method on this object, providing Result(7) as the
|
||||
name of the property to delete.
|
||||
15. If this object has a property named by Result(7), go to step 16; but if
|
||||
this object has no property named by Result(7), then go to either step 16
|
||||
or step 18, depending on the implementation.
|
||||
16. Call the [[Put]] method of this object with arguments Result(8) and
|
||||
Result(9).
|
||||
17. Go to step 19.
|
||||
18. Call the [[Delete]] method on this object, providing Result(8) as the
|
||||
name of the property to delete.
|
||||
19. Increase k by 1.
|
||||
20. Go to step 5.
|
||||
|
||||
Note that the reverse function is intentionally generic; it does not require
|
||||
that its this value be an Array object. Therefore it can be transferred to other
|
||||
kinds of objects for use as a method. Whether the reverse function can be applied
|
||||
successfully to a host object is implementation dependent.
|
||||
|
||||
Note: Array.prototype.reverse allows some flexibility in implementation
|
||||
regarding array indices that have not been populated. This test covers the
|
||||
cases in which unpopulated indices are not deleted, since the JavaScript
|
||||
implementation does not delete uninitialzed indices.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.4.4.4-1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var testcases = new Array();
|
||||
|
||||
writeHeaderToLog( SECTION + " Array.prototype.reverse()");
|
||||
|
||||
getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var ARR_PROTOTYPE = Array.prototype;
|
||||
|
||||
testcases[testcases.length] = new TestCase( SECTION, "Array.prototype.reverse.length", 0, Array.prototype.reverse.length );
|
||||
testcases[testcases.length] = new TestCase( SECTION, "delete Array.prototype.reverse.length", false, delete Array.prototype.reverse.length );
|
||||
testcases[testcases.length] = new TestCase( SECTION, "delete Array.prototype.reverse.length; Array.prototype.reverse.length", 0, eval("delete Array.prototype.reverse.length; Array.prototype.reverse.length") );
|
||||
|
||||
// length of array is 0
|
||||
testcases[testcases.length] = new TestCase( SECTION,
|
||||
"var A = new Array(); A.reverse(); A.length",
|
||||
0,
|
||||
eval("var A = new Array(); A.reverse(); A.length") );
|
||||
return ( testcases );
|
||||
}
|
||||
function CheckItems( R, A ) {
|
||||
for ( var i = 0; i < R.length; i++ ) {
|
||||
testcases[testcases.length] = new TestCase(
|
||||
SECTION,
|
||||
"A["+i+ "]",
|
||||
R[i],
|
||||
A[i] );
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
function Object_1( value ) {
|
||||
this.array = value.split(",");
|
||||
this.length = this.array.length;
|
||||
for ( var i = 0; i < this.length; i++ ) {
|
||||
this[i] = eval(this.array[i]);
|
||||
}
|
||||
this.join = Array.prototype.reverse;
|
||||
this.getClass = Object.prototype.toString;
|
||||
}
|
||||
function Reverse( array ) {
|
||||
var r2 = array.length;
|
||||
var k = 0;
|
||||
var r3 = Math.floor( r2/2 );
|
||||
if ( r3 == k ) {
|
||||
return array;
|
||||
}
|
||||
|
||||
for ( k = 0; k < r3; k++ ) {
|
||||
var r6 = r2 - k - 1;
|
||||
// var r7 = String( k );
|
||||
var r7 = k;
|
||||
var r8 = String( r6 );
|
||||
|
||||
var r9 = array[r7];
|
||||
var r10 = array[r8];
|
||||
|
||||
array[r7] = r10;
|
||||
array[r8] = r9;
|
||||
}
|
||||
|
||||
return array;
|
||||
}
|
||||
function Iterate( array ) {
|
||||
for ( var i = 0; i < array.length; i++ ) {
|
||||
// print( i+": "+ array[String(i)] );
|
||||
}
|
||||
}
|
||||
|
||||
function Object_1( value ) {
|
||||
this.array = value.split(",");
|
||||
this.length = this.array.length;
|
||||
for ( var i = 0; i < this.length; i++ ) {
|
||||
this[i] = this.array[i];
|
||||
}
|
||||
this.reverse = Array.prototype.reverse;
|
||||
this.getClass = Object.prototype.toString;
|
||||
}
|
||||
@@ -1,220 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.4.5.js
|
||||
ECMA Section: Array.prototype.sort(comparefn)
|
||||
Description:
|
||||
|
||||
This test file tests cases in which the compare function is not supplied.
|
||||
|
||||
The elements of this array are sorted. The sort is not necessarily stable.
|
||||
If comparefn is provided, it should be a function that accepts two arguments
|
||||
x and y and returns a negative value if x < y, zero if x = y, or a positive
|
||||
value if x > y.
|
||||
|
||||
1. Call the [[Get]] method of this object with argument "length".
|
||||
2. Call ToUint32(Result(1)).
|
||||
1. Perform an implementation-dependent sequence of calls to the
|
||||
[[Get]] , [[Put]], and [[Delete]] methods of this object and
|
||||
toSortCompare (described below), where the first argument for each call
|
||||
to [[Get]], [[Put]] , or [[Delete]] is a nonnegative integer less
|
||||
than Result(2) and where the arguments for calls to SortCompare are
|
||||
results of previous calls to the [[Get]] method. After this sequence
|
||||
is complete, this object must have the following two properties.
|
||||
(1) There must be some mathematical permutation of the nonnegative
|
||||
integers less than Result(2), such that for every nonnegative integer
|
||||
j less than Result(2), if property old[j] existed, then new[(j)] is
|
||||
exactly the same value as old[j],. but if property old[j] did not exist,
|
||||
then new[(j)] either does not exist or exists with value undefined.
|
||||
(2) If comparefn is not supplied or is a consistent comparison
|
||||
function for the elements of this array, then for all nonnegative
|
||||
integers j and k, each less than Result(2), if old[j] compares less
|
||||
than old[k] (see SortCompare below), then (j) < (k). Here we use the
|
||||
notation old[j] to refer to the hypothetical result of calling the [
|
||||
[Get]] method of this object with argument j before this step is
|
||||
executed, and the notation new[j] to refer to the hypothetical result
|
||||
of calling the [[Get]] method of this object with argument j after this
|
||||
step has been completely executed. A function is a consistent
|
||||
comparison function for a set of values if (a) for any two of those
|
||||
values (possibly the same value) considered as an ordered pair, it
|
||||
always returns the same value when given that pair of values as its
|
||||
two arguments, and the result of applying ToNumber to this value is
|
||||
not NaN; (b) when considered as a relation, where the pair (x, y) is
|
||||
considered to be in the relation if and only if applying the function
|
||||
to x and y and then applying ToNumber to the result produces a
|
||||
negative value, this relation is a partial order; and (c) when
|
||||
considered as a different relation, where the pair (x, y) is considered
|
||||
to be in the relation if and only if applying the function to x and y
|
||||
and then applying ToNumber to the result produces a zero value (of either
|
||||
sign), this relation is an equivalence relation. In this context, the
|
||||
phrase "x compares less than y" means applying Result(2) to x and y and
|
||||
then applying ToNumber to the result produces a negative value.
|
||||
3.Return this object.
|
||||
|
||||
When the SortCompare operator is called with two arguments x and y, the following steps are taken:
|
||||
1.If x and y are both undefined, return +0.
|
||||
2.If x is undefined, return 1.
|
||||
3.If y is undefined, return 1.
|
||||
4.If the argument comparefn was not provided in the call to sort, go to step 7.
|
||||
5.Call comparefn with arguments x and y.
|
||||
6.Return Result(5).
|
||||
7.Call ToString(x).
|
||||
8.Call ToString(y).
|
||||
9.If Result(7) < Result(8), return 1.
|
||||
10.If Result(7) > Result(8), return 1.
|
||||
11.Return +0.
|
||||
|
||||
Note that, because undefined always compared greater than any other value, undefined and nonexistent
|
||||
property values always sort to the end of the result. It is implementation-dependent whether or not such
|
||||
properties will exist or not at the end of the array when the sort is concluded.
|
||||
|
||||
Note that the sort function is intentionally generic; it does not require that its this value be an Array object.
|
||||
Therefore it can be transferred to other kinds of objects for use as a method. Whether the sort function can be
|
||||
applied successfully to a host object is implementation dependent .
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
|
||||
var SECTION = "15.4.4.5-1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Array.prototype.sort(comparefn)";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
getTestCases();
|
||||
test();
|
||||
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
function getTestCases() {
|
||||
var S = new Array();
|
||||
var item = 0;
|
||||
|
||||
// array is empty.
|
||||
S[item++] = "var A = new Array()";
|
||||
|
||||
// array contains one item
|
||||
S[item++] = "var A = new Array( true )";
|
||||
|
||||
// length of array is 2
|
||||
S[item++] = "var A = new Array( true, false, new Boolean(true), new Boolean(false), 'true', 'false' )";
|
||||
|
||||
S[item++] = "var A = new Array(); A[3] = 'undefined'; A[6] = null; A[8] = 'null'; A[0] = void 0";
|
||||
|
||||
S[item] = "var A = new Array( ";
|
||||
|
||||
var limit = 0x0061;
|
||||
for ( var i = 0x007A; i >= limit; i-- ) {
|
||||
S[item] += "\'"+ String.fromCharCode(i) +"\'" ;
|
||||
if ( i > limit ) {
|
||||
S[item] += ",";
|
||||
}
|
||||
}
|
||||
|
||||
S[item] += ")";
|
||||
|
||||
item++;
|
||||
|
||||
for ( var i = 0; i < S.length; i++ ) {
|
||||
CheckItems( S[i] );
|
||||
}
|
||||
}
|
||||
function CheckItems( S ) {
|
||||
eval( S );
|
||||
var E = Sort( A );
|
||||
|
||||
testcases[testcases.length] = new TestCase( SECTION,
|
||||
S +"; A.sort(); A.length",
|
||||
E.length,
|
||||
eval( S + "; A.sort(); A.length") );
|
||||
|
||||
for ( var i = 0; i < E.length; i++ ) {
|
||||
testcases[testcases.length] = new TestCase(
|
||||
SECTION,
|
||||
"A["+i+ "].toString()",
|
||||
E[i] +"",
|
||||
A[i] +"");
|
||||
|
||||
if ( A[i] == void 0 && typeof A[i] == "undefined" ) {
|
||||
testcases[testcases.length] = new TestCase(
|
||||
SECTION,
|
||||
"typeof A["+i+ "]",
|
||||
typeof E[i],
|
||||
typeof A[i] );
|
||||
}
|
||||
}
|
||||
}
|
||||
function Object_1( value ) {
|
||||
this.array = value.split(",");
|
||||
this.length = this.array.length;
|
||||
for ( var i = 0; i < this.length; i++ ) {
|
||||
this[i] = eval(this.array[i]);
|
||||
}
|
||||
this.sort = Array.prototype.sort;
|
||||
this.getClass = Object.prototype.toString;
|
||||
}
|
||||
function Sort( a ) {
|
||||
for ( i = 0; i < a.length; i++ ) {
|
||||
for ( j = i+1; j < a.length; j++ ) {
|
||||
var lo = a[i];
|
||||
var hi = a[j];
|
||||
var c = Compare( lo, hi );
|
||||
if ( c == 1 ) {
|
||||
a[i] = hi;
|
||||
a[j] = lo;
|
||||
}
|
||||
}
|
||||
}
|
||||
return a;
|
||||
}
|
||||
function Compare( x, y ) {
|
||||
if ( x == void 0 && y == void 0 && typeof x == "undefined" && typeof y == "undefined" ) {
|
||||
return +0;
|
||||
}
|
||||
if ( x == void 0 && typeof x == "undefined" ) {
|
||||
return 1;
|
||||
}
|
||||
if ( y == void 0 && typeof y == "undefined" ) {
|
||||
return -1;
|
||||
}
|
||||
x = String(x);
|
||||
y = String(y);
|
||||
if ( x < y ) {
|
||||
return -1;
|
||||
}
|
||||
if ( x > y ) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -1,221 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.4.5-2.js
|
||||
ECMA Section: Array.prototype.sort(comparefn)
|
||||
Description:
|
||||
|
||||
This test file tests cases in which the compare function is supplied.
|
||||
In this cases, the sort creates a reverse sort.
|
||||
|
||||
The elements of this array are sorted. The sort is not necessarily stable.
|
||||
If comparefn is provided, it should be a function that accepts two arguments
|
||||
x and y and returns a negative value if x < y, zero if x = y, or a positive
|
||||
value if x > y.
|
||||
|
||||
1. Call the [[Get]] method of this object with argument "length".
|
||||
2. Call ToUint32(Result(1)).
|
||||
1. Perform an implementation-dependent sequence of calls to the
|
||||
[[Get]] , [[Put]], and [[Delete]] methods of this object and
|
||||
toSortCompare (described below), where the first argument for each call
|
||||
to [[Get]], [[Put]] , or [[Delete]] is a nonnegative integer less
|
||||
than Result(2) and where the arguments for calls to SortCompare are
|
||||
results of previous calls to the [[Get]] method. After this sequence
|
||||
is complete, this object must have the following two properties.
|
||||
(1) There must be some mathematical permutation of the nonnegative
|
||||
integers less than Result(2), such that for every nonnegative integer
|
||||
j less than Result(2), if property old[j] existed, then new[(j)] is
|
||||
exactly the same value as old[j],. but if property old[j] did not exist,
|
||||
then new[(j)] either does not exist or exists with value undefined.
|
||||
(2) If comparefn is not supplied or is a consistent comparison
|
||||
function for the elements of this array, then for all nonnegative
|
||||
integers j and k, each less than Result(2), if old[j] compares less
|
||||
than old[k] (see SortCompare below), then (j) < (k). Here we use the
|
||||
notation old[j] to refer to the hypothetical result of calling the [
|
||||
[Get]] method of this object with argument j before this step is
|
||||
executed, and the notation new[j] to refer to the hypothetical result
|
||||
of calling the [[Get]] method of this object with argument j after this
|
||||
step has been completely executed. A function is a consistent
|
||||
comparison function for a set of values if (a) for any two of those
|
||||
values (possibly the same value) considered as an ordered pair, it
|
||||
always returns the same value when given that pair of values as its
|
||||
two arguments, and the result of applying ToNumber to this value is
|
||||
not NaN; (b) when considered as a relation, where the pair (x, y) is
|
||||
considered to be in the relation if and only if applying the function
|
||||
to x and y and then applying ToNumber to the result produces a
|
||||
negative value, this relation is a partial order; and (c) when
|
||||
considered as a different relation, where the pair (x, y) is considered
|
||||
to be in the relation if and only if applying the function to x and y
|
||||
and then applying ToNumber to the result produces a zero value (of either
|
||||
sign), this relation is an equivalence relation. In this context, the
|
||||
phrase "x compares less than y" means applying Result(2) to x and y and
|
||||
then applying ToNumber to the result produces a negative value.
|
||||
3.Return this object.
|
||||
|
||||
When the SortCompare operator is called with two arguments x and y, the following steps are taken:
|
||||
1.If x and y are both undefined, return +0.
|
||||
2.If x is undefined, return 1.
|
||||
3.If y is undefined, return 1.
|
||||
4.If the argument comparefn was not provided in the call to sort, go to step 7.
|
||||
5.Call comparefn with arguments x and y.
|
||||
6.Return Result(5).
|
||||
7.Call ToString(x).
|
||||
8.Call ToString(y).
|
||||
9.If Result(7) < Result(8), return 1.
|
||||
10.If Result(7) > Result(8), return 1.
|
||||
11.Return +0.
|
||||
|
||||
Note that, because undefined always compared greater than any other value, undefined and nonexistent
|
||||
property values always sort to the end of the result. It is implementation-dependent whether or not such
|
||||
properties will exist or not at the end of the array when the sort is concluded.
|
||||
|
||||
Note that the sort function is intentionally generic; it does not require that its this value be an Array object.
|
||||
Therefore it can be transferred to other kinds of objects for use as a method. Whether the sort function can be
|
||||
applied successfully to a host object is implementation dependent .
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
|
||||
var SECTION = "15.4.4.5-2";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Array.prototype.sort(comparefn)";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
getTestCases();
|
||||
test();
|
||||
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
function getTestCases() {
|
||||
var S = new Array();
|
||||
var item = 0;
|
||||
|
||||
// array is empty.
|
||||
S[item++] = "var A = new Array()";
|
||||
|
||||
// array contains one item
|
||||
S[item++] = "var A = new Array( true )";
|
||||
|
||||
// length of array is 2
|
||||
S[item++] = "var A = new Array( true, false, new Boolean(true), new Boolean(false), 'true', 'false' )";
|
||||
|
||||
S[item++] = "var A = new Array(); A[3] = 'undefined'; A[6] = null; A[8] = 'null'; A[0] = void 0";
|
||||
|
||||
S[item] = "var A = new Array( ";
|
||||
|
||||
var limit = 0x0061;
|
||||
for ( var i = 0x007A; i >= limit; i-- ) {
|
||||
S[item] += "\'"+ String.fromCharCode(i) +"\'" ;
|
||||
if ( i > limit ) {
|
||||
S[item] += ",";
|
||||
}
|
||||
}
|
||||
|
||||
S[item] += ")";
|
||||
|
||||
for ( var i = 0; i < S.length; i++ ) {
|
||||
CheckItems( S[i] );
|
||||
}
|
||||
|
||||
}
|
||||
function CheckItems( S ) {
|
||||
eval( S );
|
||||
var E = Sort( A );
|
||||
|
||||
testcases[testcases.length] = new TestCase( SECTION,
|
||||
S +"; A.sort(Compare); A.length",
|
||||
E.length,
|
||||
eval( S + "; A.sort(Compare); A.length") );
|
||||
|
||||
for ( var i = 0; i < E.length; i++ ) {
|
||||
testcases[testcases.length] = new TestCase(
|
||||
SECTION,
|
||||
"A["+i+ "].toString()",
|
||||
E[i] +"",
|
||||
A[i] +"");
|
||||
|
||||
if ( A[i] == void 0 && typeof A[i] == "undefined" ) {
|
||||
testcases[testcases.length] = new TestCase(
|
||||
SECTION,
|
||||
"typeof A["+i+ "]",
|
||||
typeof E[i],
|
||||
typeof A[i] );
|
||||
}
|
||||
}
|
||||
}
|
||||
function Object_1( value ) {
|
||||
this.array = value.split(",");
|
||||
this.length = this.array.length;
|
||||
for ( var i = 0; i < this.length; i++ ) {
|
||||
this[i] = eval(this.array[i]);
|
||||
}
|
||||
this.sort = Array.prototype.sort;
|
||||
this.getClass = Object.prototype.toString;
|
||||
}
|
||||
function Sort( a ) {
|
||||
var r1 = a.length;
|
||||
for ( i = 0; i < a.length; i++ ) {
|
||||
for ( j = i+1; j < a.length; j++ ) {
|
||||
var lo = a[i];
|
||||
var hi = a[j];
|
||||
var c = Compare( lo, hi );
|
||||
if ( c == 1 ) {
|
||||
a[i] = hi;
|
||||
a[j] = lo;
|
||||
}
|
||||
}
|
||||
}
|
||||
return a;
|
||||
}
|
||||
function Compare( x, y ) {
|
||||
if ( x == void 0 && y == void 0 && typeof x == "undefined" && typeof y == "undefined" ) {
|
||||
return +0;
|
||||
}
|
||||
if ( x == void 0 && typeof x == "undefined" ) {
|
||||
return 1;
|
||||
}
|
||||
if ( y == void 0 && typeof y == "undefined" ) {
|
||||
return -1;
|
||||
}
|
||||
x = String(x);
|
||||
y = String(y);
|
||||
if ( x < y ) {
|
||||
return 1;
|
||||
}
|
||||
if ( x > y ) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -1,178 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.4.5-3.js
|
||||
ECMA Section: Array.prototype.sort(comparefn)
|
||||
Description:
|
||||
|
||||
This is a regression test for
|
||||
http://scopus/bugsplat/show_bug.cgi?id=117144
|
||||
|
||||
Verify that sort is successfull, even if the sort compare function returns
|
||||
a very large negative or positive value.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
|
||||
var SECTION = "15.4.4.5-3";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Array.prototype.sort(comparefn)";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
getTestCases();
|
||||
test();
|
||||
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
|
||||
array[array.length] = new Date( TIME_2000 * Math.PI );
|
||||
array[array.length] = new Date( TIME_2000 * 10 );
|
||||
array[array.length] = new Date( TIME_1900 + TIME_1900 );
|
||||
array[array.length] = new Date(0);
|
||||
array[array.length] = new Date( TIME_2000 );
|
||||
array[array.length] = new Date( TIME_1900 + TIME_1900 +TIME_1900 );
|
||||
array[array.length] = new Date( TIME_1900 * Math.PI );
|
||||
array[array.length] = new Date( TIME_1900 * 10 );
|
||||
array[array.length] = new Date( TIME_1900 );
|
||||
array[array.length] = new Date( TIME_2000 + TIME_2000 );
|
||||
array[array.length] = new Date( 1899, 0, 1 );
|
||||
array[array.length] = new Date( 2000, 1, 29 );
|
||||
array[array.length] = new Date( 2000, 0, 1 );
|
||||
array[array.length] = new Date( 1999, 11, 31 );
|
||||
|
||||
var testarr1 = new Array()
|
||||
clone( array, testarr1 );
|
||||
testarr1.sort( comparefn1 );
|
||||
|
||||
var testarr2 = new Array()
|
||||
clone( array, testarr2 );
|
||||
testarr2.sort( comparefn2 );
|
||||
|
||||
testarr3 = new Array();
|
||||
clone( array, testarr3 );
|
||||
testarr3.sort( comparefn3 );
|
||||
|
||||
// when there's no sort function, sort sorts by the toString value of Date.
|
||||
|
||||
var testarr4 = new Array()
|
||||
clone( array, testarr4 );
|
||||
testarr4.sort();
|
||||
|
||||
var realarr = new Array();
|
||||
clone( array, realarr );
|
||||
realarr.sort( realsort );
|
||||
|
||||
var stringarr = new Array();
|
||||
clone( array, stringarr );
|
||||
stringarr.sort( stringsort );
|
||||
|
||||
for ( var i = 0, tc = 0; i < array.length; i++, tc++) {
|
||||
testcases[tc] = new TestCase(
|
||||
SECTION,
|
||||
"testarr1["+i+"]",
|
||||
realarr[i],
|
||||
testarr1[i] );
|
||||
}
|
||||
|
||||
for ( var i=0; i < array.length; i++, tc++) {
|
||||
testcases[tc] = new TestCase(
|
||||
SECTION,
|
||||
"testarr2["+i+"]",
|
||||
realarr[i],
|
||||
testarr2[i] );
|
||||
}
|
||||
|
||||
for ( var i=0; i < array.length; i++, tc++) {
|
||||
testcases[tc] = new TestCase(
|
||||
SECTION,
|
||||
"testarr3["+i+"]",
|
||||
realarr[i],
|
||||
testarr3[i] );
|
||||
}
|
||||
|
||||
for ( var i=0; i < array.length; i++, tc++) {
|
||||
testcases[tc] = new TestCase(
|
||||
SECTION,
|
||||
"testarr4["+i+"]",
|
||||
stringarr[i].toString(),
|
||||
testarr4[i].toString() );
|
||||
}
|
||||
|
||||
}
|
||||
function comparefn1( x, y ) {
|
||||
return x - y;
|
||||
}
|
||||
function comparefn2( x, y ) {
|
||||
return x.valueOf() - y.valueOf();
|
||||
}
|
||||
function realsort( x, y ) {
|
||||
return ( x.valueOf() == y.valueOf() ? 0 : ( x.valueOf() > y.valueOf() ? 1 : -1 ) );
|
||||
}
|
||||
function comparefn3( x, y ) {
|
||||
return ( x == y ? 0 : ( x > y ? 1: -1 ) );
|
||||
}
|
||||
function clone( source, target ) {
|
||||
for (i = 0; i < source.length; i++ ) {
|
||||
target[i] = source[i];
|
||||
}
|
||||
}
|
||||
function stringsort( x, y ) {
|
||||
for ( var i = 0; i < x.toString().length; i++ ) {
|
||||
var d = (x.toString()).charCodeAt(i) - (y.toString()).charCodeAt(i);
|
||||
if ( d > 0 ) {
|
||||
return 1;
|
||||
} else {
|
||||
if ( d < 0 ) {
|
||||
return -1;
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
var d = x.length - y.length;
|
||||
|
||||
if ( d > 0 ) {
|
||||
return 1;
|
||||
} else {
|
||||
if ( d < 0 ) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.4.js
|
||||
ECMA Section: 15.4.4 Properties of the Array Prototype Object
|
||||
Description: The value of the internal [[Prototype]] property of
|
||||
the Array prototype object is the Object prototype
|
||||
object.
|
||||
|
||||
Note that the Array prototype object is itself an
|
||||
array; it has a length property (whose initial value
|
||||
is (0) and the special [[Put]] method.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 october 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.4.4";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Properties of the Array Prototype Object";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
// these testcases are ECMA_2
|
||||
// array[item++] = new TestCase( SECTION, "Array.prototype.__proto__", Object.prototype, Array.prototype.__proto__ );
|
||||
// array[item++] = new TestCase( SECTION, "Array.__proto__.valueOf == Object.__proto__.valueOf", true, (Array.__proto__.valueOf == Object.__proto__.valueOf) );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Array.prototype.length", 0, Array.prototype.length );
|
||||
|
||||
// verify that prototype object is an Array object.
|
||||
array[item++] = new TestCase( SECTION, "typeof Array.prototype", "object", typeof Array.prototype );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"Array.prototype.toString = Object.prototype.toString; Array.prototype.toString()",
|
||||
"[object Array]",
|
||||
eval("Array.prototype.toString = Object.prototype.toString; Array.prototype.toString()") );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,184 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.5.1-1.js
|
||||
ECMA Section: [[ Put]] (P, V)
|
||||
Description:
|
||||
Array objects use a variation of the [[Put]] method used for other native
|
||||
ECMAScript objects (section 8.6.2.2).
|
||||
|
||||
Assume A is an Array object and P is a string.
|
||||
|
||||
When the [[Put]] method of A is called with property P and value V, the
|
||||
following steps are taken:
|
||||
|
||||
1. Call the [[CanPut]] method of A with name P.
|
||||
2. If Result(1) is false, return.
|
||||
3. If A doesn't have a property with name P, go to step 7.
|
||||
4. If P is "length", go to step 12.
|
||||
5. Set the value of property P of A to V.
|
||||
6. Go to step 8.
|
||||
7. Create a property with name P, set its value to V and give it empty
|
||||
attributes.
|
||||
8. If P is not an array index, return.
|
||||
9. If A itself has a property (not an inherited property) named "length",
|
||||
andToUint32(P) is less than the value of the length property of A, then
|
||||
return.
|
||||
10. Change (or set) the value of the length property of A to ToUint32(P)+1.
|
||||
11. Return.
|
||||
12. Compute ToUint32(V).
|
||||
13. For every integer k that is less than the value of the length property
|
||||
of A but not less than Result(12), if A itself has a property (not an
|
||||
inherited property) named ToString(k), then delete that property.
|
||||
14. Set the value of property P of A to Result(12).
|
||||
15. Return.
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.4.5.1-1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Array [[Put]] (P, V)";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
|
||||
var item = 0;
|
||||
|
||||
// P is "length"
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(); A.length = 1000; A.length",
|
||||
1000,
|
||||
eval("var A = new Array(); A.length = 1000; A.length") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(1000); A.length = Math.pow(2,32); A.length",
|
||||
0,
|
||||
eval("var A = new Array(1000); A.length = Math.pow(2,32); A.length") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(1); A.length = Math.pow(2,32) +1000; A.length",
|
||||
1000,
|
||||
eval("var A = new Array(1); A.length = Math.pow(2,32) +1000; A.length") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(1000); A.length = Math.pow(2,32) +1; A.length",
|
||||
1,
|
||||
eval("var A = new Array(1000); A.length = Math.pow(2,32) +1; A.length") );
|
||||
|
||||
// A has Property P, and P is not length or an array index
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(1000); A.name = 'name of this array'; A.name",
|
||||
'name of this array',
|
||||
eval("var A = new Array(1000); A.name = 'name of this array'; A.name") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(1000); A.name = 'name of this array'; A.length",
|
||||
1000,
|
||||
eval("var A = new Array(1000); A.name = 'name of this array'; A.length") );
|
||||
|
||||
|
||||
// A has Property P, P is not length, P is an array index, and ToUint32(p) is less than the
|
||||
// value of length
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(1000); A[123] = 'hola'; A[123]",
|
||||
'hola',
|
||||
eval("var A = new Array(1000); A[123] = 'hola'; A[123]") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(1000); A[123] = 'hola'; A.length",
|
||||
1000,
|
||||
eval("var A = new Array(1000); A[123] = 'hola'; A.length") );
|
||||
|
||||
|
||||
for ( var i = 0X0020, TEST_STRING = "var A = new Array( " ; i < 0x00ff; i++ ) {
|
||||
TEST_STRING += "\'\\"+ String.fromCharCode( i ) +"\'";
|
||||
if ( i < 0x00FF - 1 ) {
|
||||
TEST_STRING += ",";
|
||||
} else {
|
||||
TEST_STRING += ");"
|
||||
}
|
||||
}
|
||||
|
||||
var LENGTH = 0x00ff - 0x0020;
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
TEST_STRING +" A[150] = 'hello'; A[150]",
|
||||
'hello',
|
||||
eval( TEST_STRING + " A[150] = 'hello'; A[150]" ) );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
TEST_STRING +" A[150] = 'hello'; A[150]",
|
||||
LENGTH,
|
||||
eval( TEST_STRING + " A[150] = 'hello'; A.length" ) );
|
||||
|
||||
// A has Property P, P is not length, P is an array index, and ToUint32(p) is not less than the
|
||||
// value of length
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(); A[123] = true; A.length",
|
||||
124,
|
||||
eval("var A = new Array(); A[123] = true; A.length") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(0,1,2,3,4,5,6,7,8,9,10); A[15] ='15'; A.length",
|
||||
16,
|
||||
eval("var A = new Array(0,1,2,3,4,5,6,7,8,9,10); A[15] ='15'; A.length") );
|
||||
|
||||
for ( var i = 0; i < A.length; i++, item++ ) {
|
||||
array[item] = new TestCase( SECTION,
|
||||
"var A = new Array(0,1,2,3,4,5,6,7,8,9,10); A[15] ='15'; A[" +i +"]",
|
||||
(i <= 10) ? i : ( i == 15 ? '15' : void 0 ),
|
||||
A[i] );
|
||||
}
|
||||
// P is not an array index, and P is not "length"
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(); A.join.length = 4; A.join.length",
|
||||
1,
|
||||
eval("var A = new Array(); A.join.length = 4; A.join.length") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(); A.join.length = 4; A.length",
|
||||
0,
|
||||
eval("var A = new Array(); A.join.length = 4; A.length") );
|
||||
|
||||
return array;
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,147 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.5.1-2.js
|
||||
ECMA Section: [[ Put]] (P, V)
|
||||
Description:
|
||||
Array objects use a variation of the [[Put]] method used for other native
|
||||
ECMAScript objects (section 8.6.2.2).
|
||||
|
||||
Assume A is an Array object and P is a string.
|
||||
|
||||
When the [[Put]] method of A is called with property P and value V, the
|
||||
following steps are taken:
|
||||
|
||||
1. Call the [[CanPut]] method of A with name P.
|
||||
2. If Result(1) is false, return.
|
||||
3. If A doesn't have a property with name P, go to step 7.
|
||||
4. If P is "length", go to step 12.
|
||||
5. Set the value of property P of A to V.
|
||||
6. Go to step 8.
|
||||
7. Create a property with name P, set its value to V and give it empty
|
||||
attributes.
|
||||
8. If P is not an array index, return.
|
||||
9. If A itself has a property (not an inherited property) named "length",
|
||||
andToUint32(P) is less than the value of the length property of A, then
|
||||
return.
|
||||
10. Change (or set) the value of the length property of A to ToUint32(P)+1.
|
||||
11. Return.
|
||||
12. Compute ToUint32(V).
|
||||
13. For every integer k that is less than the value of the length property
|
||||
of A but not less than Result(12), if A itself has a property (not an
|
||||
inherited property) named ToString(k), then delete that property.
|
||||
14. Set the value of property P of A to Result(12).
|
||||
15. Return.
|
||||
|
||||
|
||||
These are testcases from Waldemar, detailed in
|
||||
http://scopus.mcom.com/bugsplat/show_bug.cgi?id=123552
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 15 June 1998
|
||||
*/
|
||||
|
||||
var SECTION = "15.4.5.1-2";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Array [[Put]] (P,V)";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var a = new Array();
|
||||
|
||||
AddCase( "3.00", "three" );
|
||||
AddCase( "00010", "eight" );
|
||||
AddCase( "37xyz", "thirty-five" );
|
||||
AddCase("5000000000", 5)
|
||||
AddCase( "-2", -3 );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"a[10]",
|
||||
void 0,
|
||||
a[10] );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"a[3]",
|
||||
void 0,
|
||||
a[3] );
|
||||
|
||||
a[4] = "four";
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"a[4] = \"four\"; a[4]",
|
||||
"four",
|
||||
a[4] );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"a[\"4\"]",
|
||||
"four",
|
||||
a["4"] );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"a[\"4.00\"]",
|
||||
void 0,
|
||||
a["4.00"] );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"a.length",
|
||||
5,
|
||||
a.length );
|
||||
|
||||
|
||||
a["5000000000"] = 5;
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"a[\"5000000000\"] = 5; a.length",
|
||||
5,
|
||||
a.length );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"a[\"-2\"] = -3; a.length",
|
||||
5,
|
||||
a.length );
|
||||
|
||||
test();
|
||||
|
||||
function AddCase ( arg, value ) {
|
||||
|
||||
a[arg] = value;
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"a[\"" + arg + "\"] = "+ value +"; a.length",
|
||||
0,
|
||||
a.length );
|
||||
}
|
||||
|
||||
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.5.2-1.js
|
||||
ECMA Section: Array.length
|
||||
Description:
|
||||
15.4.5.2 length
|
||||
The length property of this Array object is always numerically greater
|
||||
than the name of every property whose name is an array index.
|
||||
|
||||
The length property has the attributes { DontEnum, DontDelete }.
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.4.5.2-1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Array.length";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(); A.length",
|
||||
0,
|
||||
eval("var A = new Array(); A.length") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(); A[Math.pow(2,32)-2] = 'hi'; A.length",
|
||||
Math.pow(2,32)-1,
|
||||
eval("var A = new Array(); A[Math.pow(2,32)-2] = 'hi'; A.length") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(); A.length = 123; A.length",
|
||||
123,
|
||||
eval("var A = new Array(); A.length = 123; A.length") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(); A.length = 123; var PROPS = ''; for ( var p in A ) { PROPS += ( p == 'length' ? p : ''); } PROPS",
|
||||
"",
|
||||
eval("var A = new Array(); A.length = 123; var PROPS = ''; for ( var p in A ) { PROPS += ( p == 'length' ? p : ''); } PROPS") );
|
||||
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(); A.length = 123; delete A.length",
|
||||
false ,
|
||||
eval("var A = new Array(); A.length = 123; delete A.length") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var A = new Array(); A.length = 123; delete A.length; A.length",
|
||||
123,
|
||||
eval("var A = new Array(); A.length = 123; delete A.length; A.length") );
|
||||
return array;
|
||||
}
|
||||
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,121 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.4.5.2-2.js
|
||||
ECMA Section: Array.length
|
||||
Description:
|
||||
15.4.5.2 length
|
||||
The length property of this Array object is always numerically greater
|
||||
than the name of every property whose name is an array index.
|
||||
|
||||
The length property has the attributes { DontEnum, DontDelete }.
|
||||
|
||||
This test verifies that the Array.length property is not Read Only.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.4.5.2-2";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Array.length";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
addCase( new Array(), 0, Math.pow(2,14), Math.pow(2,14) );
|
||||
|
||||
addCase( new Array(), 0, 1, 1 );
|
||||
addCase( new Array(), 0, -Math.pow(2,31), Math.pow(2,32)-Math.pow(2,31));
|
||||
|
||||
addCase( new Array(Math.pow(2,12)), Math.pow(2,12), 0, 0 );
|
||||
addCase( new Array(Math.pow(2,13)), Math.pow(2,13), Math.pow(2,12), Math.pow(2,12) );
|
||||
addCase( new Array(Math.pow(2,12)), Math.pow(2,12), Math.pow(2,12), Math.pow(2,12) );
|
||||
addCase( new Array(Math.pow(2,14)), Math.pow(2,14), Math.pow(2,12), Math.pow(2,12) )
|
||||
|
||||
// some tests where array is not empty
|
||||
// array is populated with strings
|
||||
for ( var arg = "", i = 0; i < Math.pow(2,12); i++ ) {
|
||||
arg += String(i) + ( i != Math.pow(2,12)-1 ? "," : "" );
|
||||
|
||||
}
|
||||
// print(i +":"+arg);
|
||||
|
||||
var a = eval( "new Array("+arg+")" );
|
||||
|
||||
addCase( a, i, i, i );
|
||||
addCase( a, i, Math.pow(2,12)+i+1, Math.pow(2,12)+i+1, true );
|
||||
addCase( a, Math.pow(2,12)+5, 0, 0, true );
|
||||
|
||||
test();
|
||||
|
||||
function addCase( object, old_len, set_len, new_len, checkitems ) {
|
||||
object.length = set_len;
|
||||
|
||||
testcases[testcases.length] = new TestCase( SECTION,
|
||||
"array = new Array("+ old_len+"); array.length = " + set_len +
|
||||
"; array.length",
|
||||
new_len,
|
||||
object.length );
|
||||
|
||||
if ( checkitems ) {
|
||||
// verify that items between old and newlen are all undefined
|
||||
if ( new_len < old_len ) {
|
||||
var passed = true;
|
||||
for ( var i = new_len; i < old_len; i++ ) {
|
||||
if ( object[i] != void 0 ) {
|
||||
passed = false;
|
||||
}
|
||||
}
|
||||
testcases[testcases.length] = new TestCase( SECTION,
|
||||
"verify that array items have been deleted",
|
||||
true,
|
||||
passed );
|
||||
}
|
||||
if ( new_len > old_len ) {
|
||||
var passed = true;
|
||||
for ( var i = old_len; i < new_len; i++ ) {
|
||||
if ( object[i] != void 0 ) {
|
||||
passed = false;
|
||||
}
|
||||
}
|
||||
testcases[testcases.length] = new TestCase( SECTION,
|
||||
"verify that new items are undefined",
|
||||
true,
|
||||
passed );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.1.js
|
||||
ECMA Section: 15.6.1 The Boolean Function
|
||||
15.6.1.1 Boolean( value )
|
||||
15.6.1.2 Boolean ()
|
||||
Description: Boolean( value ) should return a Boolean value
|
||||
not a Boolean object) computed by
|
||||
Boolean.toBooleanValue( value)
|
||||
|
||||
15.6.1.2 Boolean() returns false
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 27 jun 1997
|
||||
|
||||
|
||||
Data File Fields:
|
||||
VALUE Argument passed to the Boolean function
|
||||
TYPE typeof VALUE (not used, but helpful in understanding
|
||||
the data file)
|
||||
E_RETURN Expected return value of Boolean( VALUE )
|
||||
*/
|
||||
var SECTION = "15.6.1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "The Boolean constructor called as a function: Boolean( value ) and Boolean()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Boolean(1)", true, Boolean(1) );
|
||||
array[item++] = new TestCase( SECTION, "Boolean(0)", false, Boolean(0) );
|
||||
array[item++] = new TestCase( SECTION, "Boolean(-1)", true, Boolean(-1) );
|
||||
array[item++] = new TestCase( SECTION, "Boolean('1')", true, Boolean("1") );
|
||||
array[item++] = new TestCase( SECTION, "Boolean('0')", true, Boolean("0") );
|
||||
array[item++] = new TestCase( SECTION, "Boolean('-1')", true, Boolean("-1") );
|
||||
array[item++] = new TestCase( SECTION, "Boolean(true)", true, Boolean(true) );
|
||||
array[item++] = new TestCase( SECTION, "Boolean(false)", false, Boolean(false) );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Boolean('true')", true, Boolean("true") );
|
||||
array[item++] = new TestCase( SECTION, "Boolean('false')", true, Boolean("false") );
|
||||
array[item++] = new TestCase( SECTION, "Boolean(null)", false, Boolean(null) );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Boolean(-Infinity)", true, Boolean(Number.NEGATIVE_INFINITY) );
|
||||
array[item++] = new TestCase( SECTION, "Boolean(NaN)", false, Boolean(Number.NaN) );
|
||||
array[item++] = new TestCase( SECTION, "Boolean(void(0))", false, Boolean( void(0) ) );
|
||||
array[item++] = new TestCase( SECTION, "Boolean(x=0)", false, Boolean( x=0 ) );
|
||||
array[item++] = new TestCase( SECTION, "Boolean(x=1)", true, Boolean( x=1 ) );
|
||||
array[item++] = new TestCase( SECTION, "Boolean(x=false)", false, Boolean( x=false ) );
|
||||
array[item++] = new TestCase( SECTION, "Boolean(x=true)", true, Boolean( x=true ) );
|
||||
array[item++] = new TestCase( SECTION, "Boolean(x=null)", false, Boolean( x=null ) );
|
||||
array[item++] = new TestCase( SECTION, "Boolean()", false, Boolean() );
|
||||
// array[item++] = new TestCase( SECTION, "Boolean(var someVar)", false, Boolean( someVar ) );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,157 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.2.js
|
||||
ECMA Section: 15.6.2 The Boolean Constructor
|
||||
15.6.2.1 new Boolean( value )
|
||||
15.6.2.2 new Boolean()
|
||||
|
||||
This test verifies that the Boolean constructor
|
||||
initializes a new object (typeof should return
|
||||
"object"). The prototype of the new object should
|
||||
be Boolean.prototype. The value of the object
|
||||
should be ToBoolean( value ) (a boolean value).
|
||||
|
||||
Description:
|
||||
Author: christine@netscape.com
|
||||
Date: june 27, 1997
|
||||
|
||||
*/
|
||||
var SECTION = "15.6.2";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "15.6.2 The Boolean Constructor; 15.6.2.1 new Boolean( value ); 15.6.2.2 new Boolean()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "typeof (new Boolean(1))", "object", typeof (new Boolean(1)) );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(1)).constructor", Boolean.prototype.constructor, (new Boolean(1)).constructor );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"TESTBOOL=new Boolean(1);TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()",
|
||||
"[object Boolean]",
|
||||
eval("TESTBOOL=new Boolean(1);TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()") );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(1)).valueOf()", true, (new Boolean(1)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "typeof new Boolean(1)", "object", typeof new Boolean(1) );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(0)).constructor", Boolean.prototype.constructor, (new Boolean(0)).constructor );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"TESTBOOL=new Boolean(0);TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()",
|
||||
"[object Boolean]",
|
||||
eval("TESTBOOL=new Boolean(0);TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()") );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(0)).valueOf()", false, (new Boolean(0)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "typeof new Boolean(0)", "object", typeof new Boolean(0) );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(-1)).constructor", Boolean.prototype.constructor, (new Boolean(-1)).constructor );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"TESTBOOL=new Boolean(-1);TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()",
|
||||
"[object Boolean]",
|
||||
eval("TESTBOOL=new Boolean(-1);TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()") );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(-1)).valueOf()", true, (new Boolean(-1)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "typeof new Boolean(-1)", "object", typeof new Boolean(-1) );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean('1')).constructor", Boolean.prototype.constructor, (new Boolean('1')).constructor );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"TESTBOOL=new Boolean('1');TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()",
|
||||
"[object Boolean]",
|
||||
eval("TESTBOOL=new Boolean('1');TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()") );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean('1')).valueOf()", true, (new Boolean('1')).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "typeof new Boolean('1')", "object", typeof new Boolean('1') );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean('0')).constructor", Boolean.prototype.constructor, (new Boolean('0')).constructor );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"TESTBOOL=new Boolean('0');TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()",
|
||||
"[object Boolean]",
|
||||
eval("TESTBOOL=new Boolean('0');TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()") );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean('0')).valueOf()", true, (new Boolean('0')).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "typeof new Boolean('0')", "object", typeof new Boolean('0') );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean('-1')).constructor", Boolean.prototype.constructor, (new Boolean('-1')).constructor );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"TESTBOOL=new Boolean('-1');TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()",
|
||||
"[object Boolean]",
|
||||
eval("TESTBOOL=new Boolean('-1');TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()") );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean('-1')).valueOf()", true, (new Boolean('-1')).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "typeof new Boolean('-1')", "object", typeof new Boolean('-1') );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(new Boolean(true))).constructor", Boolean.prototype.constructor, (new Boolean(new Boolean(true))).constructor );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"TESTBOOL=new Boolean(new Boolean(true));TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()",
|
||||
"[object Boolean]",
|
||||
eval("TESTBOOL=new Boolean(new Boolean(true));TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()") );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(new Boolean(true))).valueOf()", true, (new Boolean(new Boolean(true))).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "typeof new Boolean(new Boolean(true))", "object", typeof new Boolean(new Boolean(true)) );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(Number.NaN)).constructor", Boolean.prototype.constructor, (new Boolean(Number.NaN)).constructor );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"TESTBOOL=new Boolean(Number.NaN);TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()",
|
||||
"[object Boolean]",
|
||||
eval("TESTBOOL=new Boolean(Number.NaN);TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()") );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(Number.NaN)).valueOf()", false, (new Boolean(Number.NaN)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "typeof new Boolean(Number.NaN)", "object", typeof new Boolean(Number.NaN) );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(null)).constructor", Boolean.prototype.constructor, (new Boolean(null)).constructor );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"TESTBOOL=new Boolean(null);TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()",
|
||||
"[object Boolean]",
|
||||
eval("TESTBOOL=new Boolean(null);TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()") );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(null)).valueOf()", false, (new Boolean(null)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "typeof new Boolean(null)", "object", typeof new Boolean(null) );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(void 0)).constructor", Boolean.prototype.constructor, (new Boolean(void 0)).constructor );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"TESTBOOL=new Boolean(void 0);TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()",
|
||||
"[object Boolean]",
|
||||
eval("TESTBOOL=new Boolean(void 0);TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()") );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(void 0)).valueOf()", false, (new Boolean(void 0)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "typeof new Boolean(void 0)", "object", typeof new Boolean(void 0) );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(Number.POSITIVE_INFINITY)).constructor", Boolean.prototype.constructor, (new Boolean(Number.POSITIVE_INFINITY)).constructor );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"TESTBOOL=new Boolean(Number.POSITIVE_INFINITY);TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()",
|
||||
"[object Boolean]",
|
||||
eval("TESTBOOL=new Boolean(Number.POSITIVE_INFINITY);TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()") );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(Number.POSITIVE_INFINITY)).valueOf()", true, (new Boolean(Number.POSITIVE_INFINITY)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "typeof new Boolean(Number.POSITIVE_INFINITY)", "object", typeof new Boolean(Number.POSITIVE_INFINITY) );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(Number.NEGATIVE_INFINITY)).constructor", Boolean.prototype.constructor, (new Boolean(Number.NEGATIVE_INFINITY)).constructor );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"TESTBOOL=new Boolean(Number.NEGATIVE_INFINITY);TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()",
|
||||
"[object Boolean]",
|
||||
eval("TESTBOOL=new Boolean(Number.NEGATIVE_INFINITY);TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()") );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(Number.NEGATIVE_INFINITY)).valueOf()", true, (new Boolean(Number.NEGATIVE_INFINITY)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "typeof new Boolean(Number.NEGATIVE_INFINITY)", "object", typeof new Boolean(Number.NEGATIVE_INFINITY) );
|
||||
array[item++] = new TestCase( SECTION, "(new Boolean(Number.NEGATIVE_INFINITY)).constructor", Boolean.prototype.constructor, (new Boolean(Number.NEGATIVE_INFINITY)).constructor );
|
||||
array[item++] = new TestCase( "15.6.2.2",
|
||||
"TESTBOOL=new Boolean();TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()",
|
||||
"[object Boolean]",
|
||||
eval("TESTBOOL=new Boolean();TESTBOOL.toString=Object.prototype.toString;TESTBOOL.toString()") );
|
||||
array[item++] = new TestCase( "15.6.2.2", "(new Boolean()).valueOf()", false, (new Boolean()).valueOf() );
|
||||
array[item++] = new TestCase( "15.6.2.2", "typeof new Boolean()", "object", typeof new Boolean() );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for ( tc = 0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.3.1-1.js
|
||||
ECMA Section: 15.6.3 Boolean.prototype
|
||||
|
||||
Description: The initial value of Boolean.prototype is the built-in
|
||||
Boolean prototype object (15.6.4).
|
||||
|
||||
The property shall have the attributes [DontEnum,
|
||||
DontDelete, ReadOnly ].
|
||||
|
||||
This tests the DontEnum property of Boolean.prototype
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: june 27, 1997
|
||||
|
||||
*/
|
||||
var SECTION = "15.6.3.1-1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Boolean.prototype";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var str='';for ( p in Boolean ) { str += p } str;",
|
||||
"",
|
||||
eval("var str='';for ( p in Boolean ) { str += p } str;") );
|
||||
return ( array );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.3.1-2.js
|
||||
ECMA Section: 15.6.3.1 Boolean.prototype
|
||||
|
||||
Description: The initial valu eof Boolean.prototype is the built-in
|
||||
Boolean prototype object (15.6.4).
|
||||
|
||||
The property shall have the attributes [DontEnum,
|
||||
DontDelete, ReadOnly ].
|
||||
|
||||
This tests the DontDelete property of Boolean.prototype
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: june 27, 1997
|
||||
|
||||
*/
|
||||
var SECTION = "15.6.3.1-2";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Boolean.prototype"
|
||||
writeHeaderToLog( SECTION + TITLE );
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"delete( Boolean.prototype)",
|
||||
false,
|
||||
delete( Boolean.prototype) );
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.3.1-3.js
|
||||
ECMA Section: 15.6.3.1 Boolean.prototype
|
||||
|
||||
Description: The initial valu eof Boolean.prototype is the built-in
|
||||
Boolean prototype object (15.6.4).
|
||||
|
||||
The property shall have the attributes [DontEnum,
|
||||
DontDelete, ReadOnly ].
|
||||
|
||||
This tests the DontDelete property of Boolean.prototype
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: june 27, 1997
|
||||
|
||||
*/
|
||||
var SECTION = "15.6.3.1-3";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Boolean.prototype"
|
||||
writeHeaderToLog( SECTION + TITLE );
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"delete( Boolean.prototype); Boolean.prototype",
|
||||
Boolean.prototype,
|
||||
eval("delete( Boolean.prototype); Boolean.prototype") );
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,76 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.3.1-4.js
|
||||
ECMA Section: 15.6.3.1 Properties of the Boolean Prototype Object
|
||||
|
||||
Description: The initial value of Boolean.prototype is the built-in
|
||||
Boolean prototype object (15.6.4).
|
||||
|
||||
The property shall have the attributes [DontEnum,
|
||||
DontDelete, ReadOnly ].
|
||||
|
||||
This tests the ReadOnly property of Boolean.prototype
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 30 september 1997
|
||||
|
||||
*/
|
||||
var SECTION = "15.6.3.1-4";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Boolean.prototype"
|
||||
writeHeaderToLog( SECTION + TITLE );
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
var BOOL_PROTO = Boolean.prototype;
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var BOOL_PROTO = Boolean.prototype; Boolean.prototype=null; Boolean.prototype == BOOL_PROTO",
|
||||
true,
|
||||
eval("var BOOL_PROTO = Boolean.prototype; Boolean.prototype=null; Boolean.prototype == BOOL_PROTO") );
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"var BOOL_PROTO = Boolean.prototype; Boolean.prototype=null; Boolean.prototype == null",
|
||||
false,
|
||||
eval("var BOOL_PROTO = Boolean.prototype; Boolean.prototype=null; Boolean.prototype == null") );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
|
||||
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.3.1-5.js
|
||||
ECMA Section: 15.6.3.1 Boolean.prototype
|
||||
Description:
|
||||
Author: christine@netscape.com
|
||||
Date: 28 october 1997
|
||||
|
||||
*/
|
||||
var VERSION = "ECMA_2";
|
||||
startTest();
|
||||
var SECTION = "15.6.3.1-5";
|
||||
var TITLE = "Boolean.prototype"
|
||||
|
||||
writeHeaderToLog( SECTION + " " + TITLE );
|
||||
var tc= 0;
|
||||
var testcases = getTestCases();
|
||||
|
||||
// all tests must call a function that returns an array of TestCase objects.
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
array[item++] = new TestCase( SECTION, "Function.prototype == Boolean.__proto__", true, Function.prototype == Boolean.__proto__ );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.3.1.js
|
||||
ECMA Section: 15.6.3.1 Boolean.prototype
|
||||
|
||||
Description: The initial valu eof Boolean.prototype is the built-in
|
||||
Boolean prototype object (15.6.4).
|
||||
|
||||
The property shall have the attributes [DontEnum,
|
||||
DontDelete, ReadOnly ].
|
||||
|
||||
It has the internal [[Call]] and [[Construct]]
|
||||
properties (not tested), and the length property.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: june 27, 1997
|
||||
|
||||
*/
|
||||
|
||||
var SECTION = "15.6.3.1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Boolean.prototype";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Boolean.prototype.valueOf()", false, Boolean.prototype.valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "Boolean.length", 1, Boolean.length );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.3.js
|
||||
ECMA Section: 15.6.3 Properties of the Boolean Constructor
|
||||
|
||||
Description: The value of the internal prototype property is
|
||||
the Function prototype object.
|
||||
|
||||
It has the internal [[Call]] and [[Construct]]
|
||||
properties, and the length property.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: june 27, 1997
|
||||
|
||||
*/
|
||||
var SECTION = "15.6.3";
|
||||
var VERSION = "ECMA_2";
|
||||
startTest();
|
||||
var TITLE = "Properties of the Boolean Constructor"
|
||||
writeHeaderToLog( SECTION + TITLE );
|
||||
|
||||
var testcases = getTestCases();
|
||||
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Boolean.__proto__ == Function.prototype", true, Boolean.__proto__ == Function.prototype );
|
||||
array[item++] = new TestCase( SECTION, "Boolean.length", 1, Boolean.length );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.4-1.js
|
||||
ECMA Section: 15.6.4 Properties of the Boolean Prototype Object
|
||||
|
||||
Description:
|
||||
The Boolean prototype object is itself a Boolean object (its [[Class]] is
|
||||
"Boolean") whose value is false.
|
||||
|
||||
The value of the internal [[Prototype]] property of the Boolean prototype object
|
||||
is the Object prototype object (15.2.3.1).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 30 september 1997
|
||||
|
||||
*/
|
||||
|
||||
|
||||
var VERSION = "ECMA_1"
|
||||
startTest();
|
||||
var SECTION = "15.6.4-1";
|
||||
|
||||
writeHeaderToLog( SECTION + " Properties of the Boolean Prototype Object");
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "typeof Boolean.prototype == typeof( new Boolean )", true, typeof Boolean.prototype == typeof( new Boolean ) );
|
||||
array[item++] = new TestCase( SECTION, "typeof( Boolean.prototype )", "object", typeof(Boolean.prototype) );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"Boolean.prototype.toString = Object.prototype.toString; Boolean.prototype.toString()",
|
||||
"[object Boolean]",
|
||||
eval("Boolean.prototype.toString = Object.prototype.toString; Boolean.prototype.toString()") );
|
||||
array[item++] = new TestCase( SECTION, "Boolean.prototype.valueOf()", false, Boolean.prototype.valueOf() );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for (tc = 0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value "
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.4-2.js
|
||||
ECMA Section: 15.6.4 Properties of the Boolean Prototype Object
|
||||
|
||||
Description:
|
||||
The Boolean prototype object is itself a Boolean object (its [[Class]] is
|
||||
"Boolean") whose value is false.
|
||||
|
||||
The value of the internal [[Prototype]] property of the Boolean prototype object
|
||||
is the Object prototype object (15.2.3.1).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 30 september 1997
|
||||
|
||||
*/
|
||||
|
||||
|
||||
var VERSION = "ECMA_2"
|
||||
startTest();
|
||||
var SECTION = "15.6.4-2";
|
||||
|
||||
writeHeaderToLog( SECTION + " Properties of the Boolean Prototype Object");
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Boolean.prototype.__proto__", Object.prototype, Boolean.prototype.__proto__ );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for (tc = 0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+ testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value "
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.4.1.js
|
||||
ECMA Section: 15.6.4.1 Boolean.prototype.constructor
|
||||
|
||||
Description: The initial value of Boolean.prototype.constructor
|
||||
is the built-in Boolean constructor.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 30 september 1997
|
||||
|
||||
*/
|
||||
var SECTION = "15.6.4.1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Boolean.prototype.constructor"
|
||||
writeHeaderToLog( SECTION + TITLE );
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"( Boolean.prototype.constructor == Boolean )",
|
||||
true ,
|
||||
(Boolean.prototype.constructor == Boolean) );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,94 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.4.2.js
|
||||
ECMA Section: 15.6.4.2-1 Boolean.prototype.toString()
|
||||
Description: If this boolean value is true, then the string "true"
|
||||
is returned; otherwise this boolean value must be false,
|
||||
and the string "false" is returned.
|
||||
|
||||
The toString function is not generic; it generates
|
||||
a runtime error if its this value is not a Boolean
|
||||
object. Therefore it cannot be transferred to other
|
||||
kinds of objects for use as a method.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: june 27, 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.6.4.2-1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Boolean.prototype.toString()"
|
||||
writeHeaderToLog( SECTION + TITLE );
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(1)", "true", (new Boolean(1)).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(0)", "false", (new Boolean(0)).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(-1)", "true", (new Boolean(-1)).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean('1')", "true", (new Boolean("1")).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean('0')", "true", (new Boolean("0")).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(true)", "true", (new Boolean(true)).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(false)", "false", (new Boolean(false)).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean('true')", "true", (new Boolean('true')).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean('false')", "true", (new Boolean('false')).toString() );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "new Boolean('')", "false", (new Boolean('')).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(null)", "false", (new Boolean(null)).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(void(0))", "false", (new Boolean(void(0))).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(-Infinity)", "true", (new Boolean(Number.NEGATIVE_INFINITY)).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(NaN)", "false", (new Boolean(Number.NaN)).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean()", "false", (new Boolean()).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(x=1)", "true", (new Boolean(x=1)).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(x=0)", "false", (new Boolean(x=0)).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(x=false)", "false", (new Boolean(x=false)).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(x=true)", "true", (new Boolean(x=true)).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(x=null)", "false", (new Boolean(x=null)).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(x='')", "false", (new Boolean(x="")).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(x=' ')", "true", (new Boolean(x=" ")).toString() );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(new MyObject(true))", "true", (new Boolean(new MyObject(true))).toString() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(new MyObject(false))", "true", (new Boolean(new MyObject(false))).toString() );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
function MyObject( value ) {
|
||||
this.value = value;
|
||||
this.valueOf = new Function( "return this.value" );
|
||||
return this;
|
||||
}
|
||||
@@ -1,76 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.4.2-2.js
|
||||
ECMA Section: 15.6.4.2 Boolean.prototype.toString()
|
||||
Description: Returns this boolean value.
|
||||
|
||||
The toString function is not generic; it generates
|
||||
a runtime error if its this value is not a Boolean
|
||||
object. Therefore it cannot be transferred to other
|
||||
kinds of objects for use as a method.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: june 27, 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.6.4.2-2";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Boolean.prototype.toString()"
|
||||
writeHeaderToLog( SECTION + TITLE );
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"tostr=Boolean.prototype.toString; x=new Boolean(); x.toString=tostr;x.toString()",
|
||||
"false",
|
||||
"tostr=Boolean.prototype.toString; x=new Boolean(); x.toString=tostr;x.toString()" );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"tostr=Boolean.prototype.toString; x=new Boolean(true); x.toString=tostr; x.toString()",
|
||||
"true",
|
||||
"tostr=Boolean.prototype.toString; x=new Boolean(true); x.toString=tostr; x.toString()" );
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"tostr=Boolean.prototype.toString; x=new Boolean(false); x.toString=tostr;x.toString()",
|
||||
"false",
|
||||
"tostr=Boolean.prototype.toString; x=new Boolean(); x.toString=tostr;x.toString()" );
|
||||
return ( array );
|
||||
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].actual = eval( testcases[tc].actual );
|
||||
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.4.2-3.js
|
||||
ECMA Section: 15.6.4.2 Boolean.prototype.toString()
|
||||
Description: Returns this boolean value.
|
||||
|
||||
The toString function is not generic; it generates
|
||||
a runtime error if its this value is not a Boolean
|
||||
object. Therefore it cannot be transferred to other
|
||||
kinds of objects for use as a method.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: june 27, 1997
|
||||
*/
|
||||
|
||||
|
||||
var SECTION = "15.6.4.2-3";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Boolean.prototype.toString()"
|
||||
writeHeaderToLog( SECTION + TITLE );
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "tostr=Boolean.prototype.toString; x=true; x.toString=tostr;x.toString()", "true", eval("tostr=Boolean.prototype.toString; x=true; x.toString=tostr;x.toString()") );
|
||||
array[item++] = new TestCase( SECTION, "tostr=Boolean.prototype.toString; x=false; x.toString=tostr;x.toString()", "false", eval("tostr=Boolean.prototype.toString; x=false; x.toString=tostr;x.toString()") );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.4.2-4.js
|
||||
ECMA Section: 15.6.4.2 Boolean.prototype.toString()
|
||||
Description: Returns this boolean value.
|
||||
|
||||
The toString function is not generic; it generates
|
||||
a runtime error if its this value is not a Boolean
|
||||
object. Therefore it cannot be transferred to other
|
||||
kinds of objects for use as a method.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: june 27, 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.6.4.2-4-n";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Boolean.prototype.toString()";
|
||||
writeHeaderToLog( SECTION +" "+ TITLE );
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"tostr=Boolean.prototype.toString; x=new String( 'hello' ); x.toString=tostr; x.toString()",
|
||||
"error",
|
||||
"tostr=Boolean.prototype.toString; x=new String( 'hello' ); x.toString=tostr; x.toString()" );
|
||||
return ( array );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].actual = eval(testcases[tc].actual);
|
||||
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.4.3.js
|
||||
ECMA Section: 15.6.4.3 Boolean.prototype.valueOf()
|
||||
Description: Returns this boolean value.
|
||||
|
||||
The valueOf function is not generic; it generates
|
||||
a runtime error if its this value is not a Boolean
|
||||
object. Therefore it cannot be transferred to other
|
||||
kinds of objects for use as a method.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: june 27, 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.6.4.3-1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Boolean.prototype.valueOf()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(1)", true, (new Boolean(1)).valueOf() );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(0)", false, (new Boolean(0)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(-1)", true, (new Boolean(-1)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean('1')", true, (new Boolean("1")).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean('0')", true, (new Boolean("0")).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(true)", true, (new Boolean(true)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(false)", false, (new Boolean(false)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean('true')", true, (new Boolean("true")).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean('false')", true, (new Boolean('false')).valueOf() );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "new Boolean('')", false, (new Boolean('')).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(null)", false, (new Boolean(null)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(void(0))", false, (new Boolean(void(0))).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(-Infinity)", true, (new Boolean(Number.NEGATIVE_INFINITY)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(NaN)", false, (new Boolean(Number.NaN)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean()", false, (new Boolean()).valueOf() );
|
||||
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(x=1)", true, (new Boolean(x=1)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(x=0)", false, (new Boolean(x=0)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(x=false)", false, (new Boolean(x=false)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(x=true)", true, (new Boolean(x=true)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(x=null)", false, (new Boolean(x=null)).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(x='')", false, (new Boolean(x="")).valueOf() );
|
||||
array[item++] = new TestCase( SECTION, "new Boolean(x=' ')", true, (new Boolean(x=" ")).valueOf() );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.4.3-2.js
|
||||
ECMA Section: 15.6.4.3 Boolean.prototype.valueOf()
|
||||
Description: Returns this boolean value.
|
||||
|
||||
The valueOf function is not generic; it generates
|
||||
a runtime error if its this value is not a Boolean
|
||||
object. Therefore it cannot be transferred to other
|
||||
kinds of objects for use as a method.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: june 27, 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.6.4.3-2";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Boolean.prototype.valueOf()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
testcases[tc++] = getTestCases();
|
||||
test();
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION, "valof=Boolean.prototype.valueOf; x=new Boolean(); x.valueOf=valof;x.valueOf()", false, eval("valof=Boolean.prototype.valueOf; x=new Boolean(); x.valueOf=valof;x.valueOf()") );
|
||||
array[item++] = new TestCase( SECTION, "valof=Boolean.prototype.valueOf; x=new Boolean(true); x.valueOf=valof;x.valueOf()", true, eval("valof=Boolean.prototype.valueOf; x=new Boolean(true); x.valueOf=valof;x.valueOf()") );
|
||||
return ( array );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.4.3-3.js
|
||||
ECMA Section: 15.6.4.3 Boolean.prototype.valueOf()
|
||||
Description: Returns this boolean value.
|
||||
|
||||
The valueOf function is not generic; it generates
|
||||
a runtime error if its this value is not a Boolean
|
||||
object. Therefore it cannot be transferred to other
|
||||
kinds of objects for use as a method.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: june 27, 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.6.4.3-3";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Boolean.prototype.valueOf()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
testcases = getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"x=true; x.valueOf=Boolean.prototype.valueOf;x.valueOf()",
|
||||
true,
|
||||
eval("x=true; x.valueOf=Boolean.prototype.valueOf;x.valueOf()") );
|
||||
return ( array );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.4.3-4.js
|
||||
ECMA Section: 15.6.4.3 Boolean.prototype.valueOf()
|
||||
Description: Returns this boolean value.
|
||||
|
||||
The valueOf function is not generic; it generates
|
||||
a runtime error if its this value is not a Boolean
|
||||
object. Therefore it cannot be transferred to other
|
||||
kinds of objects for use as a method.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: june 27, 1997
|
||||
*/
|
||||
var SECTION = "15.6.4.3-4-n";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Boolean.prototype.valueOf()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = getTestCases();
|
||||
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( SECTION,
|
||||
"valof=Boolean.prototype.valueOf; x=new String( 'hello' ); x.valueOf=valof;x.valueOf()",
|
||||
"error",
|
||||
"valof=Boolean.prototype.valueOf; x=new String( 'hello' ); x.valueOf=valof;x.valueOf()" );
|
||||
return ( array );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].actual = eval( testcases[tc].actual );
|
||||
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,94 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.4.3.js
|
||||
ECMA Section: 15.6.4.3 Boolean.prototype.valueOf()
|
||||
Description: Returns this boolean value.
|
||||
|
||||
The valueOf function is not generic; it generates
|
||||
a runtime error if its this value is not a Boolean
|
||||
object. Therefore it cannot be transferred to other
|
||||
kinds of objects for use as a method.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: june 27, 1997
|
||||
*/
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean(1)", true, (new Boolean(1)).valueOf() );
|
||||
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean(0)", false, (new Boolean(0)).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean(-1)", true, (new Boolean(-1)).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean('1')", true, (new Boolean("1")).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean('0')", true, (new Boolean("0")).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean(true)", true, (new Boolean(true)).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean(false)", false, (new Boolean(false)).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean('true')", true, (new Boolean("true")).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean('false')", true, (new Boolean('false')).valueOf() );
|
||||
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean('')", false, (new Boolean('')).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean(null)", false, (new Boolean(null)).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean(void(0))", false, (new Boolean(void(0))).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean(-Infinity)", true, (new Boolean(Number.NEGATIVE_INFINITY)).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean(NaN)", false, (new Boolean(Number.NaN)).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean()", false, (new Boolean()).valueOf() );
|
||||
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean(x=1)", true, (new Boolean(x=1)).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean(x=0)", false, (new Boolean(x=0)).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean(x=false)", false, (new Boolean(x=false)).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean(x=true)", true, (new Boolean(x=true)).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean(x=null)", false, (new Boolean(x=null)).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean(x='')", false, (new Boolean(x="")).valueOf() );
|
||||
array[item++] = new TestCase( "15.8.6.4", "new Boolean(x=' ')", true, (new Boolean(x=" ")).valueOf() );
|
||||
|
||||
return ( array );
|
||||
}
|
||||
|
||||
function test( array ) {
|
||||
var passed = true;
|
||||
|
||||
writeHeaderToLog("15.8.6.4.3 Properties of the Boolean Object: valueOf");
|
||||
|
||||
for ( i = 0; i < array.length; i++ ) {
|
||||
|
||||
array[i].passed = writeTestCaseResult(
|
||||
array[i].expect,
|
||||
array[i].actual,
|
||||
"( "+ array[i].description +" ).valueOf() = "+ array[i].actual );
|
||||
|
||||
array[i].reason += ( array[i].passed ) ? "" : "wrong value ";
|
||||
|
||||
passed = ( array[i].passed ) ? passed : false;
|
||||
|
||||
}
|
||||
|
||||
stopTest();
|
||||
|
||||
// all tests must return a boolean value
|
||||
return ( array );
|
||||
}
|
||||
|
||||
// for TCMS, the testcases array must be global.
|
||||
var testcases = getTestCases();
|
||||
|
||||
// all tests must call a function that returns a boolean value
|
||||
test( testcases );
|
||||
@@ -1,74 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.6.4.js
|
||||
ECMA Section: Properties of the Boolean Prototype Object
|
||||
Description:
|
||||
The Boolean prototype object is itself a Boolean object (its [[Class]] is "
|
||||
Boolean") whose value is false.
|
||||
|
||||
The value of the internal [[Prototype]] property of the Boolean prototype
|
||||
object is the Object prototype object (15.2.3.1).
|
||||
|
||||
In following descriptions of functions that are properties of the Boolean
|
||||
prototype object, the phrase "this Boolean object" refers to the object that
|
||||
is the this value for the invocation of the function; it is an error if
|
||||
this does not refer to an object for which the value of the internal
|
||||
[[Class]] property is "Boolean". Also, the phrase "this boolean value"
|
||||
refers to the boolean value represented by this Boolean object, that is,
|
||||
the value of the internal [[Value]] property of this Boolean object.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.6.4";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Properties of the Boolean Prototype Object";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"Boolean.prototype == false",
|
||||
true,
|
||||
Boolean.prototype == false );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"Boolean.prototype.toString = Object.prototype.toString; Boolean.prototype.toString()",
|
||||
"[object Boolean]",
|
||||
eval("Boolean.prototype.toString = Object.prototype.toString; Boolean.prototype.toString()") );
|
||||
|
||||
test();
|
||||
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,84 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.1.1-1.js
|
||||
ECMA Section: 15.9.1.1 Time Range
|
||||
Description:
|
||||
- leap seconds are ignored
|
||||
- assume 86400000 ms / day
|
||||
- numbers range fom +/- 9,007,199,254,740,991
|
||||
- ms precision for any instant that is within
|
||||
approximately +/-285,616 years from 1 jan 1970
|
||||
UTC
|
||||
- range of times supported is -100,000,000 days
|
||||
to 100,000,000 days from 1 jan 1970 12:00 am
|
||||
- time supported is 8.64e5*10e8 milliseconds from
|
||||
1 jan 1970 UTC (+/-273972.6027397 years)
|
||||
|
||||
- this test generates its own data -- it does not
|
||||
read data from a file.
|
||||
Author: christine@netscape.com
|
||||
Date: 7 july 1997
|
||||
|
||||
Static variables:
|
||||
FOUR_HUNDRED_YEARS
|
||||
|
||||
*/
|
||||
|
||||
function test() {
|
||||
writeHeaderToLog("15.8.1.1 Time Range");
|
||||
|
||||
for ( M_SECS = 0, CURRENT_YEAR = 1970;
|
||||
M_SECS < 8640000000000000;
|
||||
tc++, M_SECS += FOUR_HUNDRED_YEARS, CURRENT_YEAR += 400 ) {
|
||||
|
||||
testcases[tc] = new TestCase( SECTION, "new Date("+M_SECS+")", CURRENT_YEAR, (new Date( M_SECS)).getUTCFullYear() );
|
||||
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
if ( ! testcases[tc].passed ) {
|
||||
testcases[tc].reason = "wrong year value";
|
||||
}
|
||||
}
|
||||
|
||||
stopTest();
|
||||
|
||||
return ( testcases );
|
||||
}
|
||||
|
||||
// every one hundred years contains:
|
||||
// 24 years with 366 days
|
||||
//
|
||||
// every four hundred years contains:
|
||||
// 97 years with 366 days
|
||||
// 303 years with 365 days
|
||||
//
|
||||
// 86400000*365*97 = 3067372800000
|
||||
// +86400000*366*303 = + 9555408000000
|
||||
// = 1.26227808e+13
|
||||
var FOUR_HUNDRED_YEARS = 1.26227808e+13;
|
||||
var SECTION = "15.9.1.1-1";
|
||||
var tc = 0;
|
||||
var testcases = new Array();
|
||||
|
||||
test();
|
||||
@@ -1,79 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.1.1-2.js
|
||||
ECMA Section: 15.9.1.1 Time Range
|
||||
Description:
|
||||
- leap seconds are ignored
|
||||
- assume 86400000 ms / day
|
||||
- numbers range fom +/- 9,007,199,254,740,991
|
||||
- ms precision for any instant that is within
|
||||
approximately +/-285,616 years from 1 jan 1970
|
||||
UTC
|
||||
- range of times supported is -100,000,000 days
|
||||
to 100,000,000 days from 1 jan 1970 12:00 am
|
||||
- time supported is 8.64e5*10e8 milliseconds from
|
||||
1 jan 1970 UTC (+/-273972.6027397 years)
|
||||
Author: christine@netscape.com
|
||||
Date: 9 july 1997
|
||||
*/
|
||||
|
||||
function test() {
|
||||
|
||||
writeHeaderToLog("15.8.1.1 Time Range");
|
||||
|
||||
for ( M_SECS = 0, CURRENT_YEAR = 1970;
|
||||
M_SECS > -8640000000000000;
|
||||
tc++, M_SECS -= FOUR_HUNDRED_YEARS, CURRENT_YEAR -= 400 ) {
|
||||
|
||||
testcases[tc] = new TestCase( SECTION, "new Date("+M_SECS+")", CURRENT_YEAR, (new Date( M_SECS )).getUTCFullYear() );
|
||||
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description + " = " +
|
||||
testcases[tc].actual );
|
||||
|
||||
if ( ! testcases[tc].passed ) {
|
||||
testcases[tc].reason = "wrong year value";
|
||||
}
|
||||
}
|
||||
|
||||
stopTest();
|
||||
|
||||
return ( testcases );
|
||||
}
|
||||
// every one hundred years contains:
|
||||
// 24 years with 366 days
|
||||
//
|
||||
// every four hundred years contains:
|
||||
// 97 years with 366 days
|
||||
// 303 years with 365 days
|
||||
//
|
||||
// 86400000*366*97 = 3067372800000
|
||||
// +86400000*365*303 = + 9555408000000
|
||||
// = 1.26227808e+13
|
||||
|
||||
var FOUR_HUNDRED_YEARS = 1.26227808e+13;
|
||||
var SECTION = "15.9.1.1-2";
|
||||
var tc = 0;
|
||||
var testcases = new Array();
|
||||
|
||||
test();
|
||||
|
||||
@@ -1,105 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.2.1.js
|
||||
ECMA Section: 15.9.2.1 Date constructor used as a function
|
||||
Date( year, month, date, hours, minutes, seconds, ms )
|
||||
Description: The arguments are accepted, but are completely ignored.
|
||||
A string is created and returned as if by the
|
||||
expression (new Date()).toString().
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 28 october 1997
|
||||
|
||||
*/
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var SECTION = "15.9.2.1";
|
||||
var TITLE = "Date Constructor used as a function";
|
||||
var TYPEOF = "string";
|
||||
var TOLERANCE = 1000;
|
||||
|
||||
writeHeaderToLog("15.9.2.1 The Date Constructor Called as a Function: " +
|
||||
"Date( year, month, date, hours, minutes, seconds, ms )" );
|
||||
var tc= 0;
|
||||
var testcases = getTestCases();
|
||||
|
||||
// all tests must call a function that returns an array of TestCase objects.
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
var TODAY = new Date();
|
||||
|
||||
// Dates around 1970
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Date(1970,0,1,0,0,0,0)", (new Date()).toString(), Date(1970,0,1,0,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(1969,11,31,15,59,59,999)", (new Date()).toString(), Date(1969,11,31,15,59,59,999))
|
||||
array[item++] = new TestCase( SECTION, "Date(1969,11,31,16,0,0,0)", (new Date()).toString(), Date(1969,11,31,16,0,0,0))
|
||||
array[item++] = new TestCase( SECTION, "Date(1969,11,31,16,0,0,1)", (new Date()).toString(), Date(1969,11,31,16,0,0,1))
|
||||
|
||||
// Dates around 2000
|
||||
array[item++] = new TestCase( SECTION, "Date(1999,11,15,59,59,999)", (new Date()).toString(), Date(1999,11,15,59,59,999));
|
||||
array[item++] = new TestCase( SECTION, "Date(1999,11,16,0,0,0,0)", (new Date()).toString(), Date(1999,11,16,0,0,0,0));
|
||||
array[item++] = new TestCase( SECTION, "Date(1999,11,31,23,59,59,999)", (new Date()).toString(), Date(1999,11,31,23,59,59,999) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2000,0,1,0,0,0,0)", (new Date()).toString(), Date(2000,0,0,0,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2000,0,1,0,0,0,1)", (new Date()).toString(), Date(2000,0,0,0,0,0,1) );
|
||||
|
||||
// Dates around 1900
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Date(1899,11,31,23,59,59,999)", (new Date()).toString(), Date(1899,11,31,23,59,59,999));
|
||||
array[item++] = new TestCase( SECTION, "Date(1900,0,1,0,0,0,0)", (new Date()).toString(), Date(1900,0,1,0,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(1900,0,1,0,0,0,1)", (new Date()).toString(), Date(1900,0,1,0,0,0,1) );
|
||||
array[item++] = new TestCase( SECTION, "Date(1899,11,31,16,0,0,0,0)", (new Date()).toString(), Date(1899,11,31,16,0,0,0,0));
|
||||
|
||||
// Dates around feb 29, 2000
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Date( 2000,1,29,0,0,0,0)", (new Date()).toString(), Date(2000,1,29,0,0,0,0));
|
||||
array[item++] = new TestCase( SECTION, "Date( 2000,1,28,23,59,59,999)", (new Date()).toString(), Date( 2000,1,28,23,59,59,999));
|
||||
array[item++] = new TestCase( SECTION, "Date( 2000,1,27,16,0,0,0)", (new Date()).toString(), Date(2000,1,27,16,0,0,0));
|
||||
|
||||
// Dates around jan 1, 2005
|
||||
array[item++] = new TestCase( SECTION, "Date(2004,11,31,23,59,59,999)", (new Date()).toString(), Date(2004,11,31,23,59,59,999));
|
||||
array[item++] = new TestCase( SECTION, "Date(2005,0,1,0,0,0,0)", (new Date()).toString(), Date(2005,0,1,0,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2005,0,1,0,0,0,1)", (new Date()).toString(), Date(2005,0,1,0,0,0,1) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2004,11,31,16,0,0,0,0)", (new Date()).toString(), Date(2004,11,31,16,0,0,0,0));
|
||||
|
||||
// Dates around jan 1, 2032
|
||||
array[item++] = new TestCase( SECTION, "Date(2031,11,31,23,59,59,999)", (new Date()).toString(), Date(2031,11,31,23,59,59,999));
|
||||
array[item++] = new TestCase( SECTION, "Date(2032,0,1,0,0,0,0)", (new Date()).toString(), Date(2032,0,1,0,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2032,0,1,0,0,0,1)", (new Date()).toString(), Date(2032,0,1,0,0,0,1) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2031,11,31,16,0,0,0,0)", (new Date()).toString(), Date(2031,11,31,16,0,0,0,0));
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,102 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.2.2.js
|
||||
ECMA Section: 15.9.2.2 Date constructor used as a function
|
||||
Date( year, month, date, hours, minutes, seconds )
|
||||
Description: The arguments are accepted, but are completely ignored.
|
||||
A string is created and returned as if by the
|
||||
expression (new Date()).toString().
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 28 october 1997
|
||||
Version: 9706
|
||||
|
||||
*/
|
||||
var VERSION = 9706;
|
||||
startTest();
|
||||
var SECTION = "15.9.2.2";
|
||||
var TOLERANCE = 100;
|
||||
var TITLE = "The Date Constructor Called as a Function";
|
||||
|
||||
writeHeaderToLog(SECTION+" "+TITLE );
|
||||
var tc= 0;
|
||||
var testcases = getTestCases();
|
||||
|
||||
// all tests must call a function that returns an array of TestCase objects.
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
// Dates around 1970
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Date(1970,0,1,0,0,0)", (new Date()).toString(), Date(1970,0,1,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(1969,11,31,15,59,59)", (new Date()).toString(), Date(1969,11,31,15,59,59))
|
||||
array[item++] = new TestCase( SECTION, "Date(1969,11,31,16,0,0)", (new Date()).toString(), Date(1969,11,31,16,0,0))
|
||||
array[item++] = new TestCase( SECTION, "Date(1969,11,31,16,0,1)", (new Date()).toString(), Date(1969,11,31,16,0,1))
|
||||
/*
|
||||
// Dates around 2000
|
||||
array[item++] = new TestCase( SECTION, "Date(1999,11,15,59,59)", (new Date()).toString(), Date(1999,11,15,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date(1999,11,16,0,0,0)", (new Date()).toString(), Date(1999,11,16,0,0,0));
|
||||
array[item++] = new TestCase( SECTION, "Date(1999,11,31,23,59,59)", (new Date()).toString(), Date(1999,11,31,23,59,59) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2000,0,1,0,0,0)", (new Date()).toString(), Date(2000,0,0,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2000,0,1,0,0,1)", (new Date()).toString(), Date(2000,0,0,0,0,1) );
|
||||
|
||||
// Dates around 1900
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Date(1899,11,31,23,59,59)", (new Date()).toString(), Date(1899,11,31,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date(1900,0,1,0,0,0)", (new Date()).toString(), Date(1900,0,1,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(1900,0,1,0,0,1)", (new Date()).toString(), Date(1900,0,1,0,0,1) );
|
||||
array[item++] = new TestCase( SECTION, "Date(1899,11,31,16,0,0,0)", (new Date()).toString(), Date(1899,11,31,16,0,0,0));
|
||||
|
||||
// Dates around feb 29, 2000
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Date( 2000,1,29,0,0,0)", (new Date()).toString(), Date(2000,1,29,0,0,0));
|
||||
array[item++] = new TestCase( SECTION, "Date( 2000,1,28,23,59,59)", (new Date()).toString(), Date( 2000,1,28,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date( 2000,1,27,16,0,0)", (new Date()).toString(), Date(2000,1,27,16,0,0));
|
||||
|
||||
// Dates around jan 1, 2005
|
||||
array[item++] = new TestCase( SECTION, "Date(2004,11,31,23,59,59)", (new Date()).toString(), Date(2004,11,31,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date(2005,0,1,0,0,0)", (new Date()).toString(), Date(2005,0,1,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2005,0,1,0,0,1)", (new Date()).toString(), Date(2005,0,1,0,0,1) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2004,11,31,16,0,0,0)", (new Date()).toString(), Date(2004,11,31,16,0,0,0));
|
||||
|
||||
// Dates around jan 1, 2032
|
||||
array[item++] = new TestCase( SECTION, "Date(2031,11,31,23,59,59)", (new Date()).toString(), Date(2031,11,31,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date(2032,0,1,0,0,0)", (new Date()).toString(), Date(2032,0,1,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2032,0,1,0,0,1)", (new Date()).toString(), Date(2032,0,1,0,0,1) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2031,11,31,16,0,0,0)", (new Date()).toString(), Date(2031,11,31,16,0,0,0));
|
||||
*/
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.2.2.js
|
||||
ECMA Section: 15.9.2.2 Date constructor used as a function
|
||||
Date( year, month, date, hours, minutes, seconds )
|
||||
Description: The arguments are accepted, but are completely ignored.
|
||||
A string is created and returned as if by the
|
||||
expression (new Date()).toString().
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 28 october 1997
|
||||
Version: 9706
|
||||
|
||||
*/
|
||||
var VERSION = 9706;
|
||||
startTest();
|
||||
var SECTION = "15.9.2.2";
|
||||
var TOLERANCE = 100;
|
||||
var TITLE = "The Date Constructor Called as a Function";
|
||||
|
||||
writeHeaderToLog(SECTION+" "+TITLE );
|
||||
var tc= 0;
|
||||
var testcases = getTestCases();
|
||||
|
||||
// all tests must call a function that returns an array of TestCase objects.
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
// Dates around 2000
|
||||
array[item++] = new TestCase( SECTION, "Date(1999,11,15,59,59)", (new Date()).toString(), Date(1999,11,15,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date(1999,11,16,0,0,0)", (new Date()).toString(), Date(1999,11,16,0,0,0));
|
||||
array[item++] = new TestCase( SECTION, "Date(1999,11,31,23,59,59)", (new Date()).toString(), Date(1999,11,31,23,59,59) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2000,0,1,0,0,0)", (new Date()).toString(), Date(2000,0,0,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2000,0,1,0,0,1)", (new Date()).toString(), Date(2000,0,0,0,0,1) );
|
||||
|
||||
/*
|
||||
// Dates around 1900
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Date(1899,11,31,23,59,59)", (new Date()).toString(), Date(1899,11,31,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date(1900,0,1,0,0,0)", (new Date()).toString(), Date(1900,0,1,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(1900,0,1,0,0,1)", (new Date()).toString(), Date(1900,0,1,0,0,1) );
|
||||
array[item++] = new TestCase( SECTION, "Date(1899,11,31,16,0,0,0)", (new Date()).toString(), Date(1899,11,31,16,0,0,0));
|
||||
|
||||
// Dates around feb 29, 2000
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Date( 2000,1,29,0,0,0)", (new Date()).toString(), Date(2000,1,29,0,0,0));
|
||||
array[item++] = new TestCase( SECTION, "Date( 2000,1,28,23,59,59)", (new Date()).toString(), Date( 2000,1,28,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date( 2000,1,27,16,0,0)", (new Date()).toString(), Date(2000,1,27,16,0,0));
|
||||
|
||||
// Dates around jan 1, 2005
|
||||
array[item++] = new TestCase( SECTION, "Date(2004,11,31,23,59,59)", (new Date()).toString(), Date(2004,11,31,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date(2005,0,1,0,0,0)", (new Date()).toString(), Date(2005,0,1,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2005,0,1,0,0,1)", (new Date()).toString(), Date(2005,0,1,0,0,1) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2004,11,31,16,0,0,0)", (new Date()).toString(), Date(2004,11,31,16,0,0,0));
|
||||
|
||||
// Dates around jan 1, 2032
|
||||
array[item++] = new TestCase( SECTION, "Date(2031,11,31,23,59,59)", (new Date()).toString(), Date(2031,11,31,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date(2032,0,1,0,0,0)", (new Date()).toString(), Date(2032,0,1,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2032,0,1,0,0,1)", (new Date()).toString(), Date(2032,0,1,0,0,1) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2031,11,31,16,0,0,0)", (new Date()).toString(), Date(2031,11,31,16,0,0,0));
|
||||
*/
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,89 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.2.2.js
|
||||
ECMA Section: 15.9.2.2 Date constructor used as a function
|
||||
Date( year, month, date, hours, minutes, seconds )
|
||||
Description: The arguments are accepted, but are completely ignored.
|
||||
A string is created and returned as if by the
|
||||
expression (new Date()).toString().
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 28 october 1997
|
||||
Version: 9706
|
||||
|
||||
*/
|
||||
var VERSION = 9706;
|
||||
startTest();
|
||||
var SECTION = "15.9.2.2";
|
||||
var TOLERANCE = 100;
|
||||
var TITLE = "The Date Constructor Called as a Function";
|
||||
|
||||
writeHeaderToLog(SECTION+" "+TITLE );
|
||||
var tc= 0;
|
||||
var testcases = getTestCases();
|
||||
|
||||
// all tests must call a function that returns an array of TestCase objects.
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
// Dates around 1900
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Date(1899,11,31,23,59,59)", (new Date()).toString(), Date(1899,11,31,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date(1900,0,1,0,0,0)", (new Date()).toString(), Date(1900,0,1,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(1900,0,1,0,0,1)", (new Date()).toString(), Date(1900,0,1,0,0,1) );
|
||||
array[item++] = new TestCase( SECTION, "Date(1899,11,31,16,0,0,0)", (new Date()).toString(), Date(1899,11,31,16,0,0,0));
|
||||
|
||||
/*
|
||||
// Dates around feb 29, 2000
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Date( 2000,1,29,0,0,0)", (new Date()).toString(), Date(2000,1,29,0,0,0));
|
||||
array[item++] = new TestCase( SECTION, "Date( 2000,1,28,23,59,59)", (new Date()).toString(), Date( 2000,1,28,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date( 2000,1,27,16,0,0)", (new Date()).toString(), Date(2000,1,27,16,0,0));
|
||||
|
||||
// Dates around jan 1, 2005
|
||||
array[item++] = new TestCase( SECTION, "Date(2004,11,31,23,59,59)", (new Date()).toString(), Date(2004,11,31,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date(2005,0,1,0,0,0)", (new Date()).toString(), Date(2005,0,1,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2005,0,1,0,0,1)", (new Date()).toString(), Date(2005,0,1,0,0,1) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2004,11,31,16,0,0,0)", (new Date()).toString(), Date(2004,11,31,16,0,0,0));
|
||||
|
||||
// Dates around jan 1, 2032
|
||||
array[item++] = new TestCase( SECTION, "Date(2031,11,31,23,59,59)", (new Date()).toString(), Date(2031,11,31,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date(2032,0,1,0,0,0)", (new Date()).toString(), Date(2032,0,1,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2032,0,1,0,0,1)", (new Date()).toString(), Date(2032,0,1,0,0,1) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2031,11,31,16,0,0,0)", (new Date()).toString(), Date(2031,11,31,16,0,0,0));
|
||||
*/
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,82 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.2.2.js
|
||||
ECMA Section: 15.9.2.2 Date constructor used as a function
|
||||
Date( year, month, date, hours, minutes, seconds )
|
||||
Description: The arguments are accepted, but are completely ignored.
|
||||
A string is created and returned as if by the
|
||||
expression (new Date()).toString().
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 28 october 1997
|
||||
Version: 9706
|
||||
|
||||
*/
|
||||
var VERSION = 9706;
|
||||
startTest();
|
||||
var SECTION = "15.9.2.2";
|
||||
var TOLERANCE = 100;
|
||||
var TITLE = "The Date Constructor Called as a Function";
|
||||
|
||||
writeHeaderToLog(SECTION+" "+TITLE );
|
||||
var tc= 0;
|
||||
var testcases = getTestCases();
|
||||
|
||||
// all tests must call a function that returns an array of TestCase objects.
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
// Dates around feb 29, 2000
|
||||
|
||||
array[item++] = new TestCase( SECTION, "Date( 2000,1,29,0,0,0)", (new Date()).toString(), Date(2000,1,29,0,0,0));
|
||||
array[item++] = new TestCase( SECTION, "Date( 2000,1,28,23,59,59)", (new Date()).toString(), Date( 2000,1,28,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date( 2000,1,27,16,0,0)", (new Date()).toString(), Date(2000,1,27,16,0,0));
|
||||
|
||||
/*
|
||||
// Dates around jan 1, 2005
|
||||
array[item++] = new TestCase( SECTION, "Date(2004,11,31,23,59,59)", (new Date()).toString(), Date(2004,11,31,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date(2005,0,1,0,0,0)", (new Date()).toString(), Date(2005,0,1,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2005,0,1,0,0,1)", (new Date()).toString(), Date(2005,0,1,0,0,1) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2004,11,31,16,0,0,0)", (new Date()).toString(), Date(2004,11,31,16,0,0,0));
|
||||
|
||||
// Dates around jan 1, 2032
|
||||
array[item++] = new TestCase( SECTION, "Date(2031,11,31,23,59,59)", (new Date()).toString(), Date(2031,11,31,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date(2032,0,1,0,0,0)", (new Date()).toString(), Date(2032,0,1,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2032,0,1,0,0,1)", (new Date()).toString(), Date(2032,0,1,0,0,1) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2031,11,31,16,0,0,0)", (new Date()).toString(), Date(2031,11,31,16,0,0,0));
|
||||
*/
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,75 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.2.2.js
|
||||
ECMA Section: 15.9.2.2 Date constructor used as a function
|
||||
Date( year, month, date, hours, minutes, seconds )
|
||||
Description: The arguments are accepted, but are completely ignored.
|
||||
A string is created and returned as if by the
|
||||
expression (new Date()).toString().
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 28 october 1997
|
||||
Version: 9706
|
||||
|
||||
*/
|
||||
var VERSION = 9706;
|
||||
startTest();
|
||||
var SECTION = "15.9.2.2";
|
||||
var TOLERANCE = 100;
|
||||
var TITLE = "The Date Constructor Called as a Function";
|
||||
|
||||
writeHeaderToLog(SECTION+" "+TITLE );
|
||||
var tc= 0;
|
||||
var testcases = getTestCases();
|
||||
|
||||
// all tests must call a function that returns an array of TestCase objects.
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
// Dates around jan 1, 2005
|
||||
array[item++] = new TestCase( SECTION, "Date(2004,11,31,23,59,59)", (new Date()).toString(), Date(2004,11,31,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date(2005,0,1,0,0,0)", (new Date()).toString(), Date(2005,0,1,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2005,0,1,0,0,1)", (new Date()).toString(), Date(2005,0,1,0,0,1) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2004,11,31,16,0,0,0)", (new Date()).toString(), Date(2004,11,31,16,0,0,0));
|
||||
/*
|
||||
// Dates around jan 1, 2032
|
||||
array[item++] = new TestCase( SECTION, "Date(2031,11,31,23,59,59)", (new Date()).toString(), Date(2031,11,31,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date(2032,0,1,0,0,0)", (new Date()).toString(), Date(2032,0,1,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2032,0,1,0,0,1)", (new Date()).toString(), Date(2032,0,1,0,0,1) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2031,11,31,16,0,0,0)", (new Date()).toString(), Date(2031,11,31,16,0,0,0));
|
||||
*/
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.2.2.js
|
||||
ECMA Section: 15.9.2.2 Date constructor used as a function
|
||||
Date( year, month, date, hours, minutes, seconds )
|
||||
Description: The arguments are accepted, but are completely ignored.
|
||||
A string is created and returned as if by the
|
||||
expression (new Date()).toString().
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 28 october 1997
|
||||
Version: 9706
|
||||
|
||||
*/
|
||||
var VERSION = 9706;
|
||||
startTest();
|
||||
var SECTION = "15.9.2.2";
|
||||
var TOLERANCE = 100;
|
||||
var TITLE = "The Date Constructor Called as a Function";
|
||||
|
||||
writeHeaderToLog(SECTION+" "+TITLE );
|
||||
var tc= 0;
|
||||
var testcases = getTestCases();
|
||||
|
||||
// all tests must call a function that returns an array of TestCase objects.
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
var array = new Array();
|
||||
var item = 0;
|
||||
|
||||
// Dates around jan 1, 2032
|
||||
array[item++] = new TestCase( SECTION, "Date(2031,11,31,23,59,59)", (new Date()).toString(), Date(2031,11,31,23,59,59));
|
||||
array[item++] = new TestCase( SECTION, "Date(2032,0,1,0,0,0)", (new Date()).toString(), Date(2032,0,1,0,0,0) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2032,0,1,0,0,1)", (new Date()).toString(), Date(2032,0,1,0,0,1) );
|
||||
array[item++] = new TestCase( SECTION, "Date(2031,11,31,16,0,0,0)", (new Date()).toString(), Date(2031,11,31,16,0,0,0));
|
||||
|
||||
return ( array );
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,269 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.3.1.js
|
||||
ECMA Section: 15.9.3.1 new Date (year, month, date, hours, minutes, seconds, ms)
|
||||
Description: The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Date prototype object,
|
||||
the one that is the initial value of Date.prototype.
|
||||
|
||||
The [[Class]] property of the newly constructed object
|
||||
is set as follows:
|
||||
1. Call ToNumber(year)
|
||||
2. Call ToNumber(month)
|
||||
3. Call ToNumber(date)
|
||||
4. Call ToNumber(hours)
|
||||
5. Call ToNumber(minutes)
|
||||
6. Call ToNumber(seconds)
|
||||
7. Call ToNumber(ms)
|
||||
8. If Result(1) is NaN and 0 <= ToInteger(Result(1)) <=
|
||||
99, Result(8) is 1900+ToInteger(Result(1)); otherwise,
|
||||
Result(8) is Result(1)
|
||||
9. Compute MakeDay(Result(8), Result(2), Result(3)
|
||||
10. Compute MakeTime(Result(4), Result(5), Result(6),
|
||||
Result(7)
|
||||
11. Compute MakeDate(Result(9), Result(10))
|
||||
12. Set the [[Value]] property of the newly constructed
|
||||
object to TimeClip(UTC(Result(11))).
|
||||
|
||||
|
||||
This tests the returned value of a newly constructed
|
||||
Date object.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 july 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.3.1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "new Date( year, month, date, hours, minutes, seconds, ms )";
|
||||
|
||||
var TIME = 0;
|
||||
var UTC_YEAR = 1;
|
||||
var UTC_MONTH = 2;
|
||||
var UTC_DATE = 3;
|
||||
var UTC_DAY = 4;
|
||||
var UTC_HOURS = 5;
|
||||
var UTC_MINUTES = 6;
|
||||
var UTC_SECONDS = 7;
|
||||
var UTC_MS = 8;
|
||||
|
||||
var YEAR = 9;
|
||||
var MONTH = 10;
|
||||
var DATE = 11;
|
||||
var DAY = 12;
|
||||
var HOURS = 13;
|
||||
var MINUTES = 14;
|
||||
var SECONDS = 15;
|
||||
var MS = 16;
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases( ) {
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// Dates around 1970
|
||||
|
||||
addNewTestCase( new Date( 1969,11,31,15,59,59,999),
|
||||
"new Date( 1969,11,31,15,59,59,999)",
|
||||
[TIME_1970-1,1969,11,31,3,23,59,59,999,1969,11,31,3,15,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date( 1969,11,31,23,59,59,999),
|
||||
"new Date( 1969,11,31,23,59,59,999)",
|
||||
[TIME_1970-TZ_ADJUST-1,1970,0,1,4,7,59,59,999,1969,11,31,3,23,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date( 1970,0,1,0,0,0,0),
|
||||
"new Date( 1970,0,1,0,0,0,0)",
|
||||
[TIME_1970-TZ_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( 1969,11,31,16,0,0,0),
|
||||
"new Date( 1969,11,31,16,0,0,0)",
|
||||
[TIME_1970,1970,0,1,4,0,0,0,0,1969,11,31,3,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1969,12,1,0,0,0,0),
|
||||
"new Date(1969,12,1,0,0,0,0)",
|
||||
[TIME_1970-TZ_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1969,11,32,0,0,0,0),
|
||||
"new Date(1969,11,32,0,0,0,0)",
|
||||
[TIME_1970-TZ_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1969,11,31,24,0,0,0),
|
||||
"new Date(1969,11,31,24,0,0,0)",
|
||||
[TIME_1970-TZ_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1969,11,31,23,60,0,0),
|
||||
"new Date(1969,11,31,23,60,0,0)",
|
||||
[TIME_1970-TZ_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1969,11,31,23,59,60,0),
|
||||
"new Date(1969,11,31,23,59,60,0)",
|
||||
[TIME_1970-TZ_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1969,11,31,23,59,59,1000),
|
||||
"new Date(1969,11,31,23,59,59,1000)",
|
||||
[TIME_1970-TZ_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
|
||||
/*
|
||||
// Dates around 2000
|
||||
|
||||
addNewTestCase( new Date( 1999,11,31,15,59,59,999),
|
||||
"new Date( 1999,11,31,15,59,59,999)",
|
||||
[TIME_2000-1,1999,11,31,5,23,59,59,999,1999,11,31,5,15,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date( 1999,11,31,16,0,0,0),
|
||||
"new Date( 1999,11,31,16,0,0,0)",
|
||||
[TIME_2000,2000,0,1,6,0,0,0,0,1999,11,31,5, 16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( 1999,11,31,23,59,59,999),
|
||||
"new Date( 1999,11,31,23,59,59,999)",
|
||||
[TIME_2000-TZ_ADJUST-1,2000,0,1,6,7,59,59,999,1999,11,31,5,23,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date( 2000,0,1,0,0,0,0),
|
||||
"new Date( 2000,0,1,0,0,0,0)",
|
||||
[TIME_2000-TZ_ADJUST,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( 2000,0,1,0,0,0,1),
|
||||
"new Date( 2000,0,1,0,0,0,1)",
|
||||
[TIME_2000-TZ_ADJUST+1,2000,0,1,6,8,0,0,1,2000,0,1,6,0,0,0,1] );
|
||||
|
||||
// Dates around 29 Feb 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + ( 30 * msPerDay ) + ( 29 * msPerDay );
|
||||
|
||||
addNewTestCase( new Date(2000,1,28,16,0,0,0),
|
||||
"new Date(2000,1,28,16,0,0,0)",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2000,1,29,0,0,0,0),
|
||||
"new Date(2000,1,29,0,0,0,0)",
|
||||
[UTC_FEB_29_2000-TZ_ADJUST,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2000,1,28,24,0,0,0),
|
||||
"new Date(2000,1,28,24,0,0,0)",
|
||||
[UTC_FEB_29_2000-TZ_ADJUST,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
// Dates around 1900
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,16,0,0,0),
|
||||
"new Date(1899,11,31,16,0,0,0)",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,15,59,59,999),
|
||||
"new Date(1899,11,31,15,59,59,999)",
|
||||
[TIME_1900-1,1899,11,31,0,23,59,59,999,1899,11,31,0,15,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,23,59,59,999),
|
||||
"new Date(1899,11,31,23,59,59,999)",
|
||||
[TIME_1900-TZ_ADJUST-1,1900,0,1,1,7,59,59,999,1899,11,31,0,23,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1900,0,1,0,0,0,0),
|
||||
"new Date(1900,0,1,0,0,0,0)",
|
||||
[TIME_1900-TZ_ADJUST,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1900,0,1,0,0,0,1),
|
||||
"new Date(1900,0,1,0,0,0,1)",
|
||||
[TIME_1900-TZ_ADJUST+1,1900,0,1,1,8,0,0,1,1900,0,1,1,0,0,0,1] );
|
||||
|
||||
// Dates around 2005
|
||||
|
||||
var UTC_YEAR_2005 = TIME_2000 + TimeInYear(2000) + TimeInYear(2001) +
|
||||
TimeInYear(2002) + TimeInYear(2003) + TimeInYear(2004);
|
||||
|
||||
addNewTestCase( new Date(2005,0,1,0,0,0,0),
|
||||
"new Date(2005,0,1,0,0,0,0)",
|
||||
[UTC_YEAR_2005-TZ_ADJUST,2005,0,1,6,8,0,0,0,2005,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2004,11,31,16,0,0,0),
|
||||
"new Date(2004,11,31,16,0,0,0)",
|
||||
[UTC_YEAR_2005,2005,0,1,6,0,0,0,0,2004,11,31,5,16,0,0,0] );
|
||||
*/
|
||||
/*
|
||||
This test case is incorrect. Need to fix the DaylightSavings functions in
|
||||
shell.js for this to work properly.
|
||||
|
||||
// Daylight Savings test case
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,1,59,59,999),
|
||||
"new Date(1998,3,5,1,59,59,999)",
|
||||
[DST_START_1998-1,1998,3,5,0,9,59,59,999,1998,3,5,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,2,0,0,0),
|
||||
"new Date(1998,3,5,2,0,0,0)",
|
||||
[DST_START_1998,1998,3,5,0,10,0,0,0,1998,3,5,0,3,0,0,0]);
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,1,59,59,999),
|
||||
"new Date(1998,9,25,1,59,59,999)",
|
||||
[DST_END_1998-1,1998,9,25,0,8,59,59,999,1998,9,25,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,2,0,0,0),
|
||||
"new Date(1998,9,25,2,0,0,0)",
|
||||
[DST_END_1998,1998,9,25,0,9,0,0,0,1998,9,25,0,1,0,0,0] );
|
||||
*/
|
||||
}
|
||||
|
||||
function addNewTestCase( DateCase, DateString, ResultArray ) {
|
||||
DateCase = DateCase;
|
||||
|
||||
var item = testcases.length;
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME], DateCase.getTime() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME], DateCase.valueOf() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", ResultArray[UTC_YEAR], DateCase.getUTCFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", ResultArray[UTC_MONTH], DateCase.getUTCMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", ResultArray[UTC_DATE], DateCase.getUTCDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", ResultArray[UTC_DAY], DateCase.getUTCDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCHours()", ResultArray[UTC_HOURS], DateCase.getUTCHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMinutes()", ResultArray[UTC_MINUTES],DateCase.getUTCMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", ResultArray[UTC_MS], DateCase.getUTCMilliseconds() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", ResultArray[YEAR], DateCase.getFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", ResultArray[MONTH], DateCase.getMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDate()", ResultArray[DATE], DateCase.getDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDay()", ResultArray[DAY], DateCase.getDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getHours()", ResultArray[HOURS], DateCase.getHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", ResultArray[MINUTES], DateCase.getMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", ResultArray[SECONDS], DateCase.getSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", ResultArray[MS], DateCase.getMilliseconds() );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for( tc = 0; tc < testcases.length; tc++ ) {
|
||||
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = " +
|
||||
testcases[tc].actual );
|
||||
}
|
||||
stopTest();
|
||||
return testcases;
|
||||
}
|
||||
@@ -1,227 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.3.1.js
|
||||
ECMA Section: 15.9.3.1 new Date (year, month, date, hours, minutes, seconds, ms)
|
||||
Description: The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Date prototype object,
|
||||
the one that is the initial value of Date.prototype.
|
||||
|
||||
The [[Class]] property of the newly constructed object
|
||||
is set as follows:
|
||||
1. Call ToNumber(year)
|
||||
2. Call ToNumber(month)
|
||||
3. Call ToNumber(date)
|
||||
4. Call ToNumber(hours)
|
||||
5. Call ToNumber(minutes)
|
||||
6. Call ToNumber(seconds)
|
||||
7. Call ToNumber(ms)
|
||||
8. If Result(1) is NaN and 0 <= ToInteger(Result(1)) <=
|
||||
99, Result(8) is 1900+ToInteger(Result(1)); otherwise,
|
||||
Result(8) is Result(1)
|
||||
9. Compute MakeDay(Result(8), Result(2), Result(3)
|
||||
10. Compute MakeTime(Result(4), Result(5), Result(6),
|
||||
Result(7)
|
||||
11. Compute MakeDate(Result(9), Result(10))
|
||||
12. Set the [[Value]] property of the newly constructed
|
||||
object to TimeClip(UTC(Result(11))).
|
||||
|
||||
|
||||
This tests the returned value of a newly constructed
|
||||
Date object.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 july 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.3.1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "new Date( year, month, date, hours, minutes, seconds, ms )";
|
||||
|
||||
var TIME = 0;
|
||||
var UTC_YEAR = 1;
|
||||
var UTC_MONTH = 2;
|
||||
var UTC_DATE = 3;
|
||||
var UTC_DAY = 4;
|
||||
var UTC_HOURS = 5;
|
||||
var UTC_MINUTES = 6;
|
||||
var UTC_SECONDS = 7;
|
||||
var UTC_MS = 8;
|
||||
|
||||
var YEAR = 9;
|
||||
var MONTH = 10;
|
||||
var DATE = 11;
|
||||
var DAY = 12;
|
||||
var HOURS = 13;
|
||||
var MINUTES = 14;
|
||||
var SECONDS = 15;
|
||||
var MS = 16;
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases( ) {
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// Dates around 2000
|
||||
|
||||
addNewTestCase( new Date( 1999,11,31,15,59,59,999),
|
||||
"new Date( 1999,11,31,15,59,59,999)",
|
||||
[TIME_2000-1,1999,11,31,5,23,59,59,999,1999,11,31,5,15,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date( 1999,11,31,16,0,0,0),
|
||||
"new Date( 1999,11,31,16,0,0,0)",
|
||||
[TIME_2000,2000,0,1,6,0,0,0,0,1999,11,31,5, 16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( 1999,11,31,23,59,59,999),
|
||||
"new Date( 1999,11,31,23,59,59,999)",
|
||||
[TIME_2000-TZ_ADJUST-1,2000,0,1,6,7,59,59,999,1999,11,31,5,23,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date( 2000,0,1,0,0,0,0),
|
||||
"new Date( 2000,0,1,0,0,0,0)",
|
||||
[TIME_2000-TZ_ADJUST,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( 2000,0,1,0,0,0,1),
|
||||
"new Date( 2000,0,1,0,0,0,1)",
|
||||
[TIME_2000-TZ_ADJUST+1,2000,0,1,6,8,0,0,1,2000,0,1,6,0,0,0,1] );
|
||||
/*
|
||||
// Dates around 29 Feb 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + ( 30 * msPerDay ) + ( 29 * msPerDay );
|
||||
|
||||
addNewTestCase( new Date(2000,1,28,16,0,0,0),
|
||||
"new Date(2000,1,28,16,0,0,0)",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2000,1,29,0,0,0,0),
|
||||
"new Date(2000,1,29,0,0,0,0)",
|
||||
[UTC_FEB_29_2000-TZ_ADJUST,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2000,1,28,24,0,0,0),
|
||||
"new Date(2000,1,28,24,0,0,0)",
|
||||
[UTC_FEB_29_2000-TZ_ADJUST,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
// Dates around 1900
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,16,0,0,0),
|
||||
"new Date(1899,11,31,16,0,0,0)",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,15,59,59,999),
|
||||
"new Date(1899,11,31,15,59,59,999)",
|
||||
[TIME_1900-1,1899,11,31,0,23,59,59,999,1899,11,31,0,15,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,23,59,59,999),
|
||||
"new Date(1899,11,31,23,59,59,999)",
|
||||
[TIME_1900-TZ_ADJUST-1,1900,0,1,1,7,59,59,999,1899,11,31,0,23,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1900,0,1,0,0,0,0),
|
||||
"new Date(1900,0,1,0,0,0,0)",
|
||||
[TIME_1900-TZ_ADJUST,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1900,0,1,0,0,0,1),
|
||||
"new Date(1900,0,1,0,0,0,1)",
|
||||
[TIME_1900-TZ_ADJUST+1,1900,0,1,1,8,0,0,1,1900,0,1,1,0,0,0,1] );
|
||||
|
||||
// Dates around 2005
|
||||
|
||||
var UTC_YEAR_2005 = TIME_2000 + TimeInYear(2000) + TimeInYear(2001) +
|
||||
TimeInYear(2002) + TimeInYear(2003) + TimeInYear(2004);
|
||||
|
||||
addNewTestCase( new Date(2005,0,1,0,0,0,0),
|
||||
"new Date(2005,0,1,0,0,0,0)",
|
||||
[UTC_YEAR_2005-TZ_ADJUST,2005,0,1,6,8,0,0,0,2005,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2004,11,31,16,0,0,0),
|
||||
"new Date(2004,11,31,16,0,0,0)",
|
||||
[UTC_YEAR_2005,2005,0,1,6,0,0,0,0,2004,11,31,5,16,0,0,0] );
|
||||
*/
|
||||
/*
|
||||
This test case is incorrect. Need to fix the DaylightSavings functions in
|
||||
shell.js for this to work properly.
|
||||
|
||||
// Daylight Savings test case
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,1,59,59,999),
|
||||
"new Date(1998,3,5,1,59,59,999)",
|
||||
[DST_START_1998-1,1998,3,5,0,9,59,59,999,1998,3,5,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,2,0,0,0),
|
||||
"new Date(1998,3,5,2,0,0,0)",
|
||||
[DST_START_1998,1998,3,5,0,10,0,0,0,1998,3,5,0,3,0,0,0]);
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,1,59,59,999),
|
||||
"new Date(1998,9,25,1,59,59,999)",
|
||||
[DST_END_1998-1,1998,9,25,0,8,59,59,999,1998,9,25,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,2,0,0,0),
|
||||
"new Date(1998,9,25,2,0,0,0)",
|
||||
[DST_END_1998,1998,9,25,0,9,0,0,0,1998,9,25,0,1,0,0,0] );
|
||||
*/
|
||||
}
|
||||
|
||||
function addNewTestCase( DateCase, DateString, ResultArray ) {
|
||||
DateCase = DateCase;
|
||||
|
||||
var item = testcases.length;
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME], DateCase.getTime() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME], DateCase.valueOf() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", ResultArray[UTC_YEAR], DateCase.getUTCFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", ResultArray[UTC_MONTH], DateCase.getUTCMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", ResultArray[UTC_DATE], DateCase.getUTCDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", ResultArray[UTC_DAY], DateCase.getUTCDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCHours()", ResultArray[UTC_HOURS], DateCase.getUTCHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMinutes()", ResultArray[UTC_MINUTES],DateCase.getUTCMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", ResultArray[UTC_MS], DateCase.getUTCMilliseconds() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", ResultArray[YEAR], DateCase.getFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", ResultArray[MONTH], DateCase.getMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDate()", ResultArray[DATE], DateCase.getDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDay()", ResultArray[DAY], DateCase.getDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getHours()", ResultArray[HOURS], DateCase.getHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", ResultArray[MINUTES], DateCase.getMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", ResultArray[SECONDS], DateCase.getSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", ResultArray[MS], DateCase.getMilliseconds() );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for( tc = 0; tc < testcases.length; tc++ ) {
|
||||
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = " +
|
||||
testcases[tc].actual );
|
||||
}
|
||||
stopTest();
|
||||
return testcases;
|
||||
}
|
||||
@@ -1,205 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.3.1.js
|
||||
ECMA Section: 15.9.3.1 new Date (year, month, date, hours, minutes, seconds, ms)
|
||||
Description: The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Date prototype object,
|
||||
the one that is the initial value of Date.prototype.
|
||||
|
||||
The [[Class]] property of the newly constructed object
|
||||
is set as follows:
|
||||
1. Call ToNumber(year)
|
||||
2. Call ToNumber(month)
|
||||
3. Call ToNumber(date)
|
||||
4. Call ToNumber(hours)
|
||||
5. Call ToNumber(minutes)
|
||||
6. Call ToNumber(seconds)
|
||||
7. Call ToNumber(ms)
|
||||
8. If Result(1) is NaN and 0 <= ToInteger(Result(1)) <=
|
||||
99, Result(8) is 1900+ToInteger(Result(1)); otherwise,
|
||||
Result(8) is Result(1)
|
||||
9. Compute MakeDay(Result(8), Result(2), Result(3)
|
||||
10. Compute MakeTime(Result(4), Result(5), Result(6),
|
||||
Result(7)
|
||||
11. Compute MakeDate(Result(9), Result(10))
|
||||
12. Set the [[Value]] property of the newly constructed
|
||||
object to TimeClip(UTC(Result(11))).
|
||||
|
||||
|
||||
This tests the returned value of a newly constructed
|
||||
Date object.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 july 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.3.1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "new Date( year, month, date, hours, minutes, seconds, ms )";
|
||||
|
||||
var TIME = 0;
|
||||
var UTC_YEAR = 1;
|
||||
var UTC_MONTH = 2;
|
||||
var UTC_DATE = 3;
|
||||
var UTC_DAY = 4;
|
||||
var UTC_HOURS = 5;
|
||||
var UTC_MINUTES = 6;
|
||||
var UTC_SECONDS = 7;
|
||||
var UTC_MS = 8;
|
||||
|
||||
var YEAR = 9;
|
||||
var MONTH = 10;
|
||||
var DATE = 11;
|
||||
var DAY = 12;
|
||||
var HOURS = 13;
|
||||
var MINUTES = 14;
|
||||
var SECONDS = 15;
|
||||
var MS = 16;
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases( ) {
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// Dates around 29 Feb 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + ( 30 * msPerDay ) + ( 29 * msPerDay );
|
||||
|
||||
addNewTestCase( new Date(2000,1,28,16,0,0,0),
|
||||
"new Date(2000,1,28,16,0,0,0)",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2000,1,29,0,0,0,0),
|
||||
"new Date(2000,1,29,0,0,0,0)",
|
||||
[UTC_FEB_29_2000-TZ_ADJUST,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2000,1,28,24,0,0,0),
|
||||
"new Date(2000,1,28,24,0,0,0)",
|
||||
[UTC_FEB_29_2000-TZ_ADJUST,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
/*
|
||||
// Dates around 1900
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,16,0,0,0),
|
||||
"new Date(1899,11,31,16,0,0,0)",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,15,59,59,999),
|
||||
"new Date(1899,11,31,15,59,59,999)",
|
||||
[TIME_1900-1,1899,11,31,0,23,59,59,999,1899,11,31,0,15,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,23,59,59,999),
|
||||
"new Date(1899,11,31,23,59,59,999)",
|
||||
[TIME_1900-TZ_ADJUST-1,1900,0,1,1,7,59,59,999,1899,11,31,0,23,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1900,0,1,0,0,0,0),
|
||||
"new Date(1900,0,1,0,0,0,0)",
|
||||
[TIME_1900-TZ_ADJUST,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1900,0,1,0,0,0,1),
|
||||
"new Date(1900,0,1,0,0,0,1)",
|
||||
[TIME_1900-TZ_ADJUST+1,1900,0,1,1,8,0,0,1,1900,0,1,1,0,0,0,1] );
|
||||
|
||||
// Dates around 2005
|
||||
|
||||
var UTC_YEAR_2005 = TIME_2000 + TimeInYear(2000) + TimeInYear(2001) +
|
||||
TimeInYear(2002) + TimeInYear(2003) + TimeInYear(2004);
|
||||
|
||||
addNewTestCase( new Date(2005,0,1,0,0,0,0),
|
||||
"new Date(2005,0,1,0,0,0,0)",
|
||||
[UTC_YEAR_2005-TZ_ADJUST,2005,0,1,6,8,0,0,0,2005,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2004,11,31,16,0,0,0),
|
||||
"new Date(2004,11,31,16,0,0,0)",
|
||||
[UTC_YEAR_2005,2005,0,1,6,0,0,0,0,2004,11,31,5,16,0,0,0] );
|
||||
*/
|
||||
/*
|
||||
This test case is incorrect. Need to fix the DaylightSavings functions in
|
||||
shell.js for this to work properly.
|
||||
|
||||
// Daylight Savings test case
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,1,59,59,999),
|
||||
"new Date(1998,3,5,1,59,59,999)",
|
||||
[DST_START_1998-1,1998,3,5,0,9,59,59,999,1998,3,5,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,2,0,0,0),
|
||||
"new Date(1998,3,5,2,0,0,0)",
|
||||
[DST_START_1998,1998,3,5,0,10,0,0,0,1998,3,5,0,3,0,0,0]);
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,1,59,59,999),
|
||||
"new Date(1998,9,25,1,59,59,999)",
|
||||
[DST_END_1998-1,1998,9,25,0,8,59,59,999,1998,9,25,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,2,0,0,0),
|
||||
"new Date(1998,9,25,2,0,0,0)",
|
||||
[DST_END_1998,1998,9,25,0,9,0,0,0,1998,9,25,0,1,0,0,0] );
|
||||
*/
|
||||
}
|
||||
|
||||
function addNewTestCase( DateCase, DateString, ResultArray ) {
|
||||
DateCase = DateCase;
|
||||
|
||||
var item = testcases.length;
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME], DateCase.getTime() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME], DateCase.valueOf() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", ResultArray[UTC_YEAR], DateCase.getUTCFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", ResultArray[UTC_MONTH], DateCase.getUTCMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", ResultArray[UTC_DATE], DateCase.getUTCDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", ResultArray[UTC_DAY], DateCase.getUTCDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCHours()", ResultArray[UTC_HOURS], DateCase.getUTCHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMinutes()", ResultArray[UTC_MINUTES],DateCase.getUTCMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", ResultArray[UTC_MS], DateCase.getUTCMilliseconds() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", ResultArray[YEAR], DateCase.getFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", ResultArray[MONTH], DateCase.getMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDate()", ResultArray[DATE], DateCase.getDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDay()", ResultArray[DAY], DateCase.getDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getHours()", ResultArray[HOURS], DateCase.getHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", ResultArray[MINUTES], DateCase.getMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", ResultArray[SECONDS], DateCase.getSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", ResultArray[MS], DateCase.getMilliseconds() );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for( tc = 0; tc < testcases.length; tc++ ) {
|
||||
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = " +
|
||||
testcases[tc].actual );
|
||||
}
|
||||
stopTest();
|
||||
return testcases;
|
||||
}
|
||||
@@ -1,189 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.3.1.js
|
||||
ECMA Section: 15.9.3.1 new Date (year, month, date, hours, minutes, seconds, ms)
|
||||
Description: The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Date prototype object,
|
||||
the one that is the initial value of Date.prototype.
|
||||
|
||||
The [[Class]] property of the newly constructed object
|
||||
is set as follows:
|
||||
1. Call ToNumber(year)
|
||||
2. Call ToNumber(month)
|
||||
3. Call ToNumber(date)
|
||||
4. Call ToNumber(hours)
|
||||
5. Call ToNumber(minutes)
|
||||
6. Call ToNumber(seconds)
|
||||
7. Call ToNumber(ms)
|
||||
8. If Result(1) is NaN and 0 <= ToInteger(Result(1)) <=
|
||||
99, Result(8) is 1900+ToInteger(Result(1)); otherwise,
|
||||
Result(8) is Result(1)
|
||||
9. Compute MakeDay(Result(8), Result(2), Result(3)
|
||||
10. Compute MakeTime(Result(4), Result(5), Result(6),
|
||||
Result(7)
|
||||
11. Compute MakeDate(Result(9), Result(10))
|
||||
12. Set the [[Value]] property of the newly constructed
|
||||
object to TimeClip(UTC(Result(11))).
|
||||
|
||||
|
||||
This tests the returned value of a newly constructed
|
||||
Date object.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 july 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.3.1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "new Date( year, month, date, hours, minutes, seconds, ms )";
|
||||
|
||||
var TIME = 0;
|
||||
var UTC_YEAR = 1;
|
||||
var UTC_MONTH = 2;
|
||||
var UTC_DATE = 3;
|
||||
var UTC_DAY = 4;
|
||||
var UTC_HOURS = 5;
|
||||
var UTC_MINUTES = 6;
|
||||
var UTC_SECONDS = 7;
|
||||
var UTC_MS = 8;
|
||||
|
||||
var YEAR = 9;
|
||||
var MONTH = 10;
|
||||
var DATE = 11;
|
||||
var DAY = 12;
|
||||
var HOURS = 13;
|
||||
var MINUTES = 14;
|
||||
var SECONDS = 15;
|
||||
var MS = 16;
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases( ) {
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// Dates around 1900
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,16,0,0,0),
|
||||
"new Date(1899,11,31,16,0,0,0)",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,15,59,59,999),
|
||||
"new Date(1899,11,31,15,59,59,999)",
|
||||
[TIME_1900-1,1899,11,31,0,23,59,59,999,1899,11,31,0,15,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,23,59,59,999),
|
||||
"new Date(1899,11,31,23,59,59,999)",
|
||||
[TIME_1900-TZ_ADJUST-1,1900,0,1,1,7,59,59,999,1899,11,31,0,23,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1900,0,1,0,0,0,0),
|
||||
"new Date(1900,0,1,0,0,0,0)",
|
||||
[TIME_1900-TZ_ADJUST,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1900,0,1,0,0,0,1),
|
||||
"new Date(1900,0,1,0,0,0,1)",
|
||||
[TIME_1900-TZ_ADJUST+1,1900,0,1,1,8,0,0,1,1900,0,1,1,0,0,0,1] );
|
||||
/*
|
||||
// Dates around 2005
|
||||
|
||||
var UTC_YEAR_2005 = TIME_2000 + TimeInYear(2000) + TimeInYear(2001) +
|
||||
TimeInYear(2002) + TimeInYear(2003) + TimeInYear(2004);
|
||||
|
||||
addNewTestCase( new Date(2005,0,1,0,0,0,0),
|
||||
"new Date(2005,0,1,0,0,0,0)",
|
||||
[UTC_YEAR_2005-TZ_ADJUST,2005,0,1,6,8,0,0,0,2005,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2004,11,31,16,0,0,0),
|
||||
"new Date(2004,11,31,16,0,0,0)",
|
||||
[UTC_YEAR_2005,2005,0,1,6,0,0,0,0,2004,11,31,5,16,0,0,0] );
|
||||
*/
|
||||
/*
|
||||
This test case is incorrect. Need to fix the DaylightSavings functions in
|
||||
shell.js for this to work properly.
|
||||
|
||||
// Daylight Savings test case
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,1,59,59,999),
|
||||
"new Date(1998,3,5,1,59,59,999)",
|
||||
[DST_START_1998-1,1998,3,5,0,9,59,59,999,1998,3,5,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,2,0,0,0),
|
||||
"new Date(1998,3,5,2,0,0,0)",
|
||||
[DST_START_1998,1998,3,5,0,10,0,0,0,1998,3,5,0,3,0,0,0]);
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,1,59,59,999),
|
||||
"new Date(1998,9,25,1,59,59,999)",
|
||||
[DST_END_1998-1,1998,9,25,0,8,59,59,999,1998,9,25,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,2,0,0,0),
|
||||
"new Date(1998,9,25,2,0,0,0)",
|
||||
[DST_END_1998,1998,9,25,0,9,0,0,0,1998,9,25,0,1,0,0,0] );
|
||||
*/
|
||||
}
|
||||
|
||||
function addNewTestCase( DateCase, DateString, ResultArray ) {
|
||||
DateCase = DateCase;
|
||||
|
||||
var item = testcases.length;
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME], DateCase.getTime() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME], DateCase.valueOf() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", ResultArray[UTC_YEAR], DateCase.getUTCFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", ResultArray[UTC_MONTH], DateCase.getUTCMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", ResultArray[UTC_DATE], DateCase.getUTCDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", ResultArray[UTC_DAY], DateCase.getUTCDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCHours()", ResultArray[UTC_HOURS], DateCase.getUTCHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMinutes()", ResultArray[UTC_MINUTES],DateCase.getUTCMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", ResultArray[UTC_MS], DateCase.getUTCMilliseconds() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", ResultArray[YEAR], DateCase.getFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", ResultArray[MONTH], DateCase.getMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDate()", ResultArray[DATE], DateCase.getDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDay()", ResultArray[DAY], DateCase.getDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getHours()", ResultArray[HOURS], DateCase.getHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", ResultArray[MINUTES], DateCase.getMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", ResultArray[SECONDS], DateCase.getSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", ResultArray[MS], DateCase.getMilliseconds() );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for( tc = 0; tc < testcases.length; tc++ ) {
|
||||
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = " +
|
||||
testcases[tc].actual );
|
||||
}
|
||||
stopTest();
|
||||
return testcases;
|
||||
}
|
||||
@@ -1,166 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.3.1.js
|
||||
ECMA Section: 15.9.3.1 new Date (year, month, date, hours, minutes, seconds, ms)
|
||||
Description: The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Date prototype object,
|
||||
the one that is the initial value of Date.prototype.
|
||||
|
||||
The [[Class]] property of the newly constructed object
|
||||
is set as follows:
|
||||
1. Call ToNumber(year)
|
||||
2. Call ToNumber(month)
|
||||
3. Call ToNumber(date)
|
||||
4. Call ToNumber(hours)
|
||||
5. Call ToNumber(minutes)
|
||||
6. Call ToNumber(seconds)
|
||||
7. Call ToNumber(ms)
|
||||
8. If Result(1) is NaN and 0 <= ToInteger(Result(1)) <=
|
||||
99, Result(8) is 1900+ToInteger(Result(1)); otherwise,
|
||||
Result(8) is Result(1)
|
||||
9. Compute MakeDay(Result(8), Result(2), Result(3)
|
||||
10. Compute MakeTime(Result(4), Result(5), Result(6),
|
||||
Result(7)
|
||||
11. Compute MakeDate(Result(9), Result(10))
|
||||
12. Set the [[Value]] property of the newly constructed
|
||||
object to TimeClip(UTC(Result(11))).
|
||||
|
||||
|
||||
This tests the returned value of a newly constructed
|
||||
Date object.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 july 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.3.1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "new Date( year, month, date, hours, minutes, seconds, ms )";
|
||||
|
||||
var TIME = 0;
|
||||
var UTC_YEAR = 1;
|
||||
var UTC_MONTH = 2;
|
||||
var UTC_DATE = 3;
|
||||
var UTC_DAY = 4;
|
||||
var UTC_HOURS = 5;
|
||||
var UTC_MINUTES = 6;
|
||||
var UTC_SECONDS = 7;
|
||||
var UTC_MS = 8;
|
||||
|
||||
var YEAR = 9;
|
||||
var MONTH = 10;
|
||||
var DATE = 11;
|
||||
var DAY = 12;
|
||||
var HOURS = 13;
|
||||
var MINUTES = 14;
|
||||
var SECONDS = 15;
|
||||
var MS = 16;
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
getTestCases();
|
||||
test();
|
||||
|
||||
function getTestCases( ) {
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// Dates around 2005
|
||||
|
||||
var UTC_YEAR_2005 = TIME_2000 + TimeInYear(2000) + TimeInYear(2001) +
|
||||
TimeInYear(2002) + TimeInYear(2003) + TimeInYear(2004);
|
||||
|
||||
addNewTestCase( new Date(2005,0,1,0,0,0,0),
|
||||
"new Date(2005,0,1,0,0,0,0)",
|
||||
[UTC_YEAR_2005-TZ_ADJUST,2005,0,1,6,8,0,0,0,2005,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2004,11,31,16,0,0,0),
|
||||
"new Date(2004,11,31,16,0,0,0)",
|
||||
[UTC_YEAR_2005,2005,0,1,6,0,0,0,0,2004,11,31,5,16,0,0,0] );
|
||||
/*
|
||||
This test case is incorrect. Need to fix the DaylightSavings functions in
|
||||
shell.js for this to work properly.
|
||||
|
||||
// Daylight Savings test case
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,1,59,59,999),
|
||||
"new Date(1998,3,5,1,59,59,999)",
|
||||
[DST_START_1998-1,1998,3,5,0,9,59,59,999,1998,3,5,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,2,0,0,0),
|
||||
"new Date(1998,3,5,2,0,0,0)",
|
||||
[DST_START_1998,1998,3,5,0,10,0,0,0,1998,3,5,0,3,0,0,0]);
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,1,59,59,999),
|
||||
"new Date(1998,9,25,1,59,59,999)",
|
||||
[DST_END_1998-1,1998,9,25,0,8,59,59,999,1998,9,25,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,2,0,0,0),
|
||||
"new Date(1998,9,25,2,0,0,0)",
|
||||
[DST_END_1998,1998,9,25,0,9,0,0,0,1998,9,25,0,1,0,0,0] );
|
||||
*/
|
||||
}
|
||||
|
||||
function addNewTestCase( DateCase, DateString, ResultArray ) {
|
||||
DateCase = DateCase;
|
||||
|
||||
var item = testcases.length;
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME], DateCase.getTime() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME], DateCase.valueOf() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", ResultArray[UTC_YEAR], DateCase.getUTCFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", ResultArray[UTC_MONTH], DateCase.getUTCMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", ResultArray[UTC_DATE], DateCase.getUTCDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", ResultArray[UTC_DAY], DateCase.getUTCDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCHours()", ResultArray[UTC_HOURS], DateCase.getUTCHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMinutes()", ResultArray[UTC_MINUTES],DateCase.getUTCMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", ResultArray[UTC_MS], DateCase.getUTCMilliseconds() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", ResultArray[YEAR], DateCase.getFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", ResultArray[MONTH], DateCase.getMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDate()", ResultArray[DATE], DateCase.getDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDay()", ResultArray[DAY], DateCase.getDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getHours()", ResultArray[HOURS], DateCase.getHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", ResultArray[MINUTES], DateCase.getMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", ResultArray[SECONDS], DateCase.getSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", ResultArray[MS], DateCase.getMilliseconds() );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for( tc = 0; tc < testcases.length; tc++ ) {
|
||||
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = " +
|
||||
testcases[tc].actual );
|
||||
}
|
||||
stopTest();
|
||||
return testcases;
|
||||
}
|
||||
@@ -1,238 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.3.1.js
|
||||
ECMA Section: 15.9.3.1 new Date (year, month, date, hours, minutes, seconds, ms)
|
||||
Description: The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Date prototype object,
|
||||
the one that is the initial value of Date.prototype.
|
||||
|
||||
The [[Class]] property of the newly constructed object
|
||||
is set as follows:
|
||||
1. Call ToNumber(year)
|
||||
2. Call ToNumber(month)
|
||||
3. Call ToNumber(date)
|
||||
4. Call ToNumber(hours)
|
||||
5. Call ToNumber(minutes)
|
||||
6. Call ToNumber(seconds)
|
||||
7. Call ToNumber(ms)
|
||||
8. If Result(1)is NaN and 0 <= ToInteger(Result(1)) <=
|
||||
99, Result(8) is 1900+ToInteger(Result(1)); otherwise,
|
||||
Result(8) is Result(1)
|
||||
9. Compute MakeDay(Result(8), Result(2), Result(3)
|
||||
10. Compute MakeTime(Result(4), Result(5), Result(6),
|
||||
Result(7)
|
||||
11. Compute MakeDate(Result(9), Result(10))
|
||||
12. Set the [[Value]] property of the newly constructed
|
||||
object to TimeClip(UTC(Result(11))).
|
||||
|
||||
|
||||
This tests the returned value of a newly constructed
|
||||
Date object.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 july 1997
|
||||
*/
|
||||
|
||||
var TIME = 0;
|
||||
var UTC_YEAR = 1;
|
||||
var UTC_MONTH = 2;
|
||||
var UTC_DATE = 3;
|
||||
var UTC_DAY = 4;
|
||||
var UTC_HOURS = 5;
|
||||
var UTC_MINUTES = 6;
|
||||
var UTC_SECONDS = 7;
|
||||
var UTC_MS = 8;
|
||||
|
||||
var YEAR = 9;
|
||||
var MONTH = 10;
|
||||
var DATE = 11;
|
||||
var DAY = 12;
|
||||
var HOURS = 13;
|
||||
var MINUTES = 14;
|
||||
var SECONDS = 15;
|
||||
var MS = 16;
|
||||
|
||||
// for TCMS, the testcases array must be global.
|
||||
var SECTION = "15.9.3.1";
|
||||
var TITLE = "Date( year, month, date, hours, minutes, seconds )";
|
||||
|
||||
writeHeaderToLog( SECTION+" " +TITLE );
|
||||
|
||||
var testcases = new Array();
|
||||
getTestCases();
|
||||
|
||||
// all tests must call a function that returns an array of TestCase object
|
||||
test();
|
||||
|
||||
function getTestCases( ) {
|
||||
|
||||
// Dates around 1970
|
||||
|
||||
addNewTestCase( new Date( 1969,11,31,15,59,59),
|
||||
"new Date( 1969,11,31,15,59,59)",
|
||||
[-1000,1969,11,31,3,23,59,59,0,1969,11,31,3,15,59,59,0] );
|
||||
|
||||
addNewTestCase( new Date( 1969,11,31,16,0,0),
|
||||
"new Date( 1969,11,31,16,0,0)",
|
||||
[0,1970,0,1,4,0,0,0,0,1969,11,31,3,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( 1969,11,31,23,59,59),
|
||||
"new Date( 1969,11,31,23,59,59)",
|
||||
[28799000,1970,0,1,4,7,59,59,0,1969,11,31,3,23,59,59,0] );
|
||||
|
||||
addNewTestCase( new Date( 1970, 0, 1, 0, 0, 0),
|
||||
"new Date( 1970, 0, 1, 0, 0, 0)",
|
||||
[28800000,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( 1969,11,31,16,0,0),
|
||||
"new Date( 1969,11,31,16,0,0)",
|
||||
[0,1970,0,1,4,0,0,0,0,1969,11,31,3,16,0,0,0] );
|
||||
/*
|
||||
// Dates around 2000
|
||||
|
||||
addNewTestCase( new Date( 1999,11,31,15,59,59),
|
||||
"new Date( 1999,11,31,15,59,59)",
|
||||
[946684799000,1999,11,31,5,23,59,59,0,1999,11,31,5,15,59,59,0] );
|
||||
|
||||
addNewTestCase( new Date( 1999,11,31,16,0,0),
|
||||
"new Date( 1999,11,31,16,0,0)",
|
||||
[946684800000,2000,0,1,6,0,0,0,0,1999,11,31,5, 16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( 2000,0,1,0,0,0),
|
||||
"new Date( 2000,0,1,0,0,0)",
|
||||
[946713600000,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
|
||||
|
||||
// Dates around 1900
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,16,0,0),
|
||||
"new Date(1899,11,31,16,0,0)",
|
||||
[-2208988800000,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,15,59,59),
|
||||
"new Date(1899,11,31,15,59,59)",
|
||||
[-2208988801000,1899,11,31,0,23,59,59,0,1899,11,31,0,15,59,59,0] );
|
||||
|
||||
addNewTestCase( new Date(1900,0,1,0,0,0),
|
||||
"new Date(1900,0,1,0,0,0)",
|
||||
[-2208960000000,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1900,0,1,0,0,1),
|
||||
"new Date(1900,0,1,0,0,1)",
|
||||
[-2208959999000,1900,0,1,1,8,0,1,0,1900,0,1,1,0,0,1,0] );
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + msPerDay*31 + msPerDay*28;
|
||||
var PST_FEB_29_2000 = UTC_FEB_29_2000 + 8*msPerHour;
|
||||
|
||||
// Dates around Feb 29, 2000
|
||||
addNewTestCase( new Date(2000,1,28,16,0,0,0),
|
||||
"new Date(2000,1,28,16,0,0,0)",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2000,1,29,0,0,0,0),
|
||||
"new Date(2000,1,29,0,0,0,0)",
|
||||
[PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2000,1,29,24,0,0,0),
|
||||
"new Date(2000,1,29,24,0,0,0)",
|
||||
[PST_FEB_29_2000+msPerDay,2000,2,1,3,8,0,0,0,2000,2,1,3,0,0,0,0] );
|
||||
|
||||
// Dates around Jan 1, 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000) + TimeInYear(2001) +
|
||||
TimeInYear(2002)+ TimeInYear(2003) + TimeInYear(2004);
|
||||
var PST_JAN_1_2005 = UTC_JAN_1_2005 + 8*msPerHour;
|
||||
|
||||
addNewTestCase( new Date(2005,0,1,0,0,0,0),
|
||||
"new Date(2005,0,1,0,0,0,0)",
|
||||
[PST_JAN_1_2005,2005,0,1,6,8,0,0,0,2005,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2004,11,31,16,0,0,0),
|
||||
"new Date(2004,11,31,16,0,0,0)",
|
||||
[UTC_JAN_1_2005,2005,0,1,6,0,0,0,0,2004,11,31,5,16,0,0,0] );
|
||||
*/
|
||||
/*
|
||||
This test case is incorrect. Need to fix the DaylightSavings functions in
|
||||
shell.js for this to work properly.
|
||||
|
||||
// Daylight Savings Time
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,1,59,59,999),
|
||||
"new Date(1998,3,5,1,59,59,999)",
|
||||
[DST_START_1998-1,1998,3,5,0,9,59,59,999,1998,3,5,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,2,0,0,0),
|
||||
"new Date(1998,3,5,2,0,0,0)",
|
||||
[DST_START_1998,1998,3,5,0,10,0,0,0,1998,3,5,0,3,0,0,0]);
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,1,59,59,999),
|
||||
"new Date(1998,9,25,1,59,59,999)",
|
||||
[DST_END_1998-1,1998,9,25,0,8,59,59,999,1998,9,25,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,2,0,0,0),
|
||||
"new Date(1998,9,25,2,0,0,0)",
|
||||
[DST_END_1998,1998,9,25,0,9,0,0,0,1998,9,25,0,1,0,0,0] );
|
||||
*/
|
||||
}
|
||||
|
||||
function addNewTestCase( DateCase, DateString, ResultArray ) {
|
||||
|
||||
DateCase = DateCase;
|
||||
|
||||
item = testcases.length;
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME], DateCase.getTime() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME], DateCase.valueOf() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", ResultArray[UTC_YEAR], DateCase.getUTCFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", ResultArray[UTC_MONTH], DateCase.getUTCMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", ResultArray[UTC_DATE], DateCase.getUTCDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", ResultArray[UTC_DAY], DateCase.getUTCDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCHours()", ResultArray[UTC_HOURS], DateCase.getUTCHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMinutes()", ResultArray[UTC_MINUTES],DateCase.getUTCMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", ResultArray[UTC_MS], DateCase.getUTCMilliseconds() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", ResultArray[YEAR], DateCase.getFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", ResultArray[MONTH], DateCase.getMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDate()", ResultArray[DATE], DateCase.getDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDay()", ResultArray[DAY], DateCase.getDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getHours()", ResultArray[HOURS], DateCase.getHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", ResultArray[MINUTES], DateCase.getMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", ResultArray[SECONDS], DateCase.getSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", ResultArray[MS], DateCase.getMilliseconds() );
|
||||
|
||||
}
|
||||
|
||||
function test() {
|
||||
for( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = " +
|
||||
testcases[tc].actual );
|
||||
}
|
||||
stopTest();
|
||||
return testcases;
|
||||
}
|
||||
|
||||
@@ -1,216 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.3.1.js
|
||||
ECMA Section: 15.9.3.1 new Date (year, month, date, hours, minutes, seconds, ms)
|
||||
Description: The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Date prototype object,
|
||||
the one that is the initial value of Date.prototype.
|
||||
|
||||
The [[Class]] property of the newly constructed object
|
||||
is set as follows:
|
||||
1. Call ToNumber(year)
|
||||
2. Call ToNumber(month)
|
||||
3. Call ToNumber(date)
|
||||
4. Call ToNumber(hours)
|
||||
5. Call ToNumber(minutes)
|
||||
6. Call ToNumber(seconds)
|
||||
7. Call ToNumber(ms)
|
||||
8. If Result(1)is NaN and 0 <= ToInteger(Result(1)) <=
|
||||
99, Result(8) is 1900+ToInteger(Result(1)); otherwise,
|
||||
Result(8) is Result(1)
|
||||
9. Compute MakeDay(Result(8), Result(2), Result(3)
|
||||
10. Compute MakeTime(Result(4), Result(5), Result(6),
|
||||
Result(7)
|
||||
11. Compute MakeDate(Result(9), Result(10))
|
||||
12. Set the [[Value]] property of the newly constructed
|
||||
object to TimeClip(UTC(Result(11))).
|
||||
|
||||
|
||||
This tests the returned value of a newly constructed
|
||||
Date object.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 july 1997
|
||||
*/
|
||||
|
||||
var TIME = 0;
|
||||
var UTC_YEAR = 1;
|
||||
var UTC_MONTH = 2;
|
||||
var UTC_DATE = 3;
|
||||
var UTC_DAY = 4;
|
||||
var UTC_HOURS = 5;
|
||||
var UTC_MINUTES = 6;
|
||||
var UTC_SECONDS = 7;
|
||||
var UTC_MS = 8;
|
||||
|
||||
var YEAR = 9;
|
||||
var MONTH = 10;
|
||||
var DATE = 11;
|
||||
var DAY = 12;
|
||||
var HOURS = 13;
|
||||
var MINUTES = 14;
|
||||
var SECONDS = 15;
|
||||
var MS = 16;
|
||||
|
||||
// for TCMS, the testcases array must be global.
|
||||
var SECTION = "15.9.3.1";
|
||||
var TITLE = "Date( year, month, date, hours, minutes, seconds )";
|
||||
|
||||
writeHeaderToLog( SECTION+" " +TITLE );
|
||||
|
||||
var testcases = new Array();
|
||||
getTestCases();
|
||||
|
||||
// all tests must call a function that returns an array of TestCase object
|
||||
test();
|
||||
|
||||
function getTestCases( ) {
|
||||
|
||||
// Dates around 2000
|
||||
|
||||
addNewTestCase( new Date( 1999,11,31,15,59,59),
|
||||
"new Date( 1999,11,31,15,59,59)",
|
||||
[946684799000,1999,11,31,5,23,59,59,0,1999,11,31,5,15,59,59,0] );
|
||||
|
||||
addNewTestCase( new Date( 1999,11,31,16,0,0),
|
||||
"new Date( 1999,11,31,16,0,0)",
|
||||
[946684800000,2000,0,1,6,0,0,0,0,1999,11,31,5, 16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( 2000,0,1,0,0,0),
|
||||
"new Date( 2000,0,1,0,0,0)",
|
||||
[946713600000,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
|
||||
/*
|
||||
// Dates around 1900
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,16,0,0),
|
||||
"new Date(1899,11,31,16,0,0)",
|
||||
[-2208988800000,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,15,59,59),
|
||||
"new Date(1899,11,31,15,59,59)",
|
||||
[-2208988801000,1899,11,31,0,23,59,59,0,1899,11,31,0,15,59,59,0] );
|
||||
|
||||
addNewTestCase( new Date(1900,0,1,0,0,0),
|
||||
"new Date(1900,0,1,0,0,0)",
|
||||
[-2208960000000,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1900,0,1,0,0,1),
|
||||
"new Date(1900,0,1,0,0,1)",
|
||||
[-2208959999000,1900,0,1,1,8,0,1,0,1900,0,1,1,0,0,1,0] );
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + msPerDay*31 + msPerDay*28;
|
||||
var PST_FEB_29_2000 = UTC_FEB_29_2000 + 8*msPerHour;
|
||||
|
||||
// Dates around Feb 29, 2000
|
||||
addNewTestCase( new Date(2000,1,28,16,0,0,0),
|
||||
"new Date(2000,1,28,16,0,0,0)",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2000,1,29,0,0,0,0),
|
||||
"new Date(2000,1,29,0,0,0,0)",
|
||||
[PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2000,1,29,24,0,0,0),
|
||||
"new Date(2000,1,29,24,0,0,0)",
|
||||
[PST_FEB_29_2000+msPerDay,2000,2,1,3,8,0,0,0,2000,2,1,3,0,0,0,0] );
|
||||
|
||||
// Dates around Jan 1, 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000) + TimeInYear(2001) +
|
||||
TimeInYear(2002)+ TimeInYear(2003) + TimeInYear(2004);
|
||||
var PST_JAN_1_2005 = UTC_JAN_1_2005 + 8*msPerHour;
|
||||
|
||||
addNewTestCase( new Date(2005,0,1,0,0,0,0),
|
||||
"new Date(2005,0,1,0,0,0,0)",
|
||||
[PST_JAN_1_2005,2005,0,1,6,8,0,0,0,2005,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2004,11,31,16,0,0,0),
|
||||
"new Date(2004,11,31,16,0,0,0)",
|
||||
[UTC_JAN_1_2005,2005,0,1,6,0,0,0,0,2004,11,31,5,16,0,0,0] );
|
||||
*/
|
||||
/*
|
||||
This test case is incorrect. Need to fix the DaylightSavings functions in
|
||||
shell.js for this to work properly.
|
||||
|
||||
// Daylight Savings Time
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,1,59,59,999),
|
||||
"new Date(1998,3,5,1,59,59,999)",
|
||||
[DST_START_1998-1,1998,3,5,0,9,59,59,999,1998,3,5,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,2,0,0,0),
|
||||
"new Date(1998,3,5,2,0,0,0)",
|
||||
[DST_START_1998,1998,3,5,0,10,0,0,0,1998,3,5,0,3,0,0,0]);
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,1,59,59,999),
|
||||
"new Date(1998,9,25,1,59,59,999)",
|
||||
[DST_END_1998-1,1998,9,25,0,8,59,59,999,1998,9,25,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,2,0,0,0),
|
||||
"new Date(1998,9,25,2,0,0,0)",
|
||||
[DST_END_1998,1998,9,25,0,9,0,0,0,1998,9,25,0,1,0,0,0] );
|
||||
*/
|
||||
}
|
||||
|
||||
function addNewTestCase( DateCase, DateString, ResultArray ) {
|
||||
|
||||
DateCase = DateCase;
|
||||
|
||||
item = testcases.length;
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME], DateCase.getTime() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME], DateCase.valueOf() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", ResultArray[UTC_YEAR], DateCase.getUTCFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", ResultArray[UTC_MONTH], DateCase.getUTCMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", ResultArray[UTC_DATE], DateCase.getUTCDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", ResultArray[UTC_DAY], DateCase.getUTCDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCHours()", ResultArray[UTC_HOURS], DateCase.getUTCHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMinutes()", ResultArray[UTC_MINUTES],DateCase.getUTCMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", ResultArray[UTC_MS], DateCase.getUTCMilliseconds() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", ResultArray[YEAR], DateCase.getFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", ResultArray[MONTH], DateCase.getMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDate()", ResultArray[DATE], DateCase.getDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDay()", ResultArray[DAY], DateCase.getDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getHours()", ResultArray[HOURS], DateCase.getHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", ResultArray[MINUTES], DateCase.getMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", ResultArray[SECONDS], DateCase.getSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", ResultArray[MS], DateCase.getMilliseconds() );
|
||||
|
||||
}
|
||||
|
||||
function test() {
|
||||
for( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = " +
|
||||
testcases[tc].actual );
|
||||
}
|
||||
stopTest();
|
||||
return testcases;
|
||||
}
|
||||
|
||||
@@ -1,202 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.3.1.js
|
||||
ECMA Section: 15.9.3.1 new Date (year, month, date, hours, minutes, seconds, ms)
|
||||
Description: The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Date prototype object,
|
||||
the one that is the initial value of Date.prototype.
|
||||
|
||||
The [[Class]] property of the newly constructed object
|
||||
is set as follows:
|
||||
1. Call ToNumber(year)
|
||||
2. Call ToNumber(month)
|
||||
3. Call ToNumber(date)
|
||||
4. Call ToNumber(hours)
|
||||
5. Call ToNumber(minutes)
|
||||
6. Call ToNumber(seconds)
|
||||
7. Call ToNumber(ms)
|
||||
8. If Result(1)is NaN and 0 <= ToInteger(Result(1)) <=
|
||||
99, Result(8) is 1900+ToInteger(Result(1)); otherwise,
|
||||
Result(8) is Result(1)
|
||||
9. Compute MakeDay(Result(8), Result(2), Result(3)
|
||||
10. Compute MakeTime(Result(4), Result(5), Result(6),
|
||||
Result(7)
|
||||
11. Compute MakeDate(Result(9), Result(10))
|
||||
12. Set the [[Value]] property of the newly constructed
|
||||
object to TimeClip(UTC(Result(11))).
|
||||
|
||||
|
||||
This tests the returned value of a newly constructed
|
||||
Date object.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 july 1997
|
||||
*/
|
||||
|
||||
var TIME = 0;
|
||||
var UTC_YEAR = 1;
|
||||
var UTC_MONTH = 2;
|
||||
var UTC_DATE = 3;
|
||||
var UTC_DAY = 4;
|
||||
var UTC_HOURS = 5;
|
||||
var UTC_MINUTES = 6;
|
||||
var UTC_SECONDS = 7;
|
||||
var UTC_MS = 8;
|
||||
|
||||
var YEAR = 9;
|
||||
var MONTH = 10;
|
||||
var DATE = 11;
|
||||
var DAY = 12;
|
||||
var HOURS = 13;
|
||||
var MINUTES = 14;
|
||||
var SECONDS = 15;
|
||||
var MS = 16;
|
||||
|
||||
// for TCMS, the testcases array must be global.
|
||||
var SECTION = "15.9.3.1";
|
||||
var TITLE = "Date( year, month, date, hours, minutes, seconds )";
|
||||
|
||||
writeHeaderToLog( SECTION+" " +TITLE );
|
||||
|
||||
var testcases = new Array();
|
||||
getTestCases();
|
||||
|
||||
// all tests must call a function that returns an array of TestCase object
|
||||
test();
|
||||
|
||||
function getTestCases( ) {
|
||||
|
||||
// Dates around 1900
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,16,0,0),
|
||||
"new Date(1899,11,31,16,0,0)",
|
||||
[-2208988800000,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1899,11,31,15,59,59),
|
||||
"new Date(1899,11,31,15,59,59)",
|
||||
[-2208988801000,1899,11,31,0,23,59,59,0,1899,11,31,0,15,59,59,0] );
|
||||
|
||||
addNewTestCase( new Date(1900,0,1,0,0,0),
|
||||
"new Date(1900,0,1,0,0,0)",
|
||||
[-2208960000000,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1900,0,1,0,0,1),
|
||||
"new Date(1900,0,1,0,0,1)",
|
||||
[-2208959999000,1900,0,1,1,8,0,1,0,1900,0,1,1,0,0,1,0] );
|
||||
/*
|
||||
var UTC_FEB_29_2000 = TIME_2000 + msPerDay*31 + msPerDay*28;
|
||||
var PST_FEB_29_2000 = UTC_FEB_29_2000 + 8*msPerHour;
|
||||
|
||||
// Dates around Feb 29, 2000
|
||||
addNewTestCase( new Date(2000,1,28,16,0,0,0),
|
||||
"new Date(2000,1,28,16,0,0,0)",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2000,1,29,0,0,0,0),
|
||||
"new Date(2000,1,29,0,0,0,0)",
|
||||
[PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2000,1,29,24,0,0,0),
|
||||
"new Date(2000,1,29,24,0,0,0)",
|
||||
[PST_FEB_29_2000+msPerDay,2000,2,1,3,8,0,0,0,2000,2,1,3,0,0,0,0] );
|
||||
|
||||
// Dates around Jan 1, 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000) + TimeInYear(2001) +
|
||||
TimeInYear(2002)+ TimeInYear(2003) + TimeInYear(2004);
|
||||
var PST_JAN_1_2005 = UTC_JAN_1_2005 + 8*msPerHour;
|
||||
|
||||
addNewTestCase( new Date(2005,0,1,0,0,0,0),
|
||||
"new Date(2005,0,1,0,0,0,0)",
|
||||
[PST_JAN_1_2005,2005,0,1,6,8,0,0,0,2005,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2004,11,31,16,0,0,0),
|
||||
"new Date(2004,11,31,16,0,0,0)",
|
||||
[UTC_JAN_1_2005,2005,0,1,6,0,0,0,0,2004,11,31,5,16,0,0,0] );
|
||||
*/
|
||||
/*
|
||||
This test case is incorrect. Need to fix the DaylightSavings functions in
|
||||
shell.js for this to work properly.
|
||||
|
||||
// Daylight Savings Time
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,1,59,59,999),
|
||||
"new Date(1998,3,5,1,59,59,999)",
|
||||
[DST_START_1998-1,1998,3,5,0,9,59,59,999,1998,3,5,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,2,0,0,0),
|
||||
"new Date(1998,3,5,2,0,0,0)",
|
||||
[DST_START_1998,1998,3,5,0,10,0,0,0,1998,3,5,0,3,0,0,0]);
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,1,59,59,999),
|
||||
"new Date(1998,9,25,1,59,59,999)",
|
||||
[DST_END_1998-1,1998,9,25,0,8,59,59,999,1998,9,25,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,2,0,0,0),
|
||||
"new Date(1998,9,25,2,0,0,0)",
|
||||
[DST_END_1998,1998,9,25,0,9,0,0,0,1998,9,25,0,1,0,0,0] );
|
||||
*/
|
||||
}
|
||||
|
||||
function addNewTestCase( DateCase, DateString, ResultArray ) {
|
||||
|
||||
DateCase = DateCase;
|
||||
|
||||
item = testcases.length;
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME], DateCase.getTime() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME], DateCase.valueOf() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", ResultArray[UTC_YEAR], DateCase.getUTCFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", ResultArray[UTC_MONTH], DateCase.getUTCMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", ResultArray[UTC_DATE], DateCase.getUTCDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", ResultArray[UTC_DAY], DateCase.getUTCDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCHours()", ResultArray[UTC_HOURS], DateCase.getUTCHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMinutes()", ResultArray[UTC_MINUTES],DateCase.getUTCMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", ResultArray[UTC_MS], DateCase.getUTCMilliseconds() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", ResultArray[YEAR], DateCase.getFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", ResultArray[MONTH], DateCase.getMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDate()", ResultArray[DATE], DateCase.getDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDay()", ResultArray[DAY], DateCase.getDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getHours()", ResultArray[HOURS], DateCase.getHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", ResultArray[MINUTES], DateCase.getMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", ResultArray[SECONDS], DateCase.getSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", ResultArray[MS], DateCase.getMilliseconds() );
|
||||
|
||||
}
|
||||
|
||||
function test() {
|
||||
for( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = " +
|
||||
testcases[tc].actual );
|
||||
}
|
||||
stopTest();
|
||||
return testcases;
|
||||
}
|
||||
|
||||
@@ -1,185 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.3.1.js
|
||||
ECMA Section: 15.9.3.1 new Date (year, month, date, hours, minutes, seconds, ms)
|
||||
Description: The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Date prototype object,
|
||||
the one that is the initial value of Date.prototype.
|
||||
|
||||
The [[Class]] property of the newly constructed object
|
||||
is set as follows:
|
||||
1. Call ToNumber(year)
|
||||
2. Call ToNumber(month)
|
||||
3. Call ToNumber(date)
|
||||
4. Call ToNumber(hours)
|
||||
5. Call ToNumber(minutes)
|
||||
6. Call ToNumber(seconds)
|
||||
7. Call ToNumber(ms)
|
||||
8. If Result(1)is NaN and 0 <= ToInteger(Result(1)) <=
|
||||
99, Result(8) is 1900+ToInteger(Result(1)); otherwise,
|
||||
Result(8) is Result(1)
|
||||
9. Compute MakeDay(Result(8), Result(2), Result(3)
|
||||
10. Compute MakeTime(Result(4), Result(5), Result(6),
|
||||
Result(7)
|
||||
11. Compute MakeDate(Result(9), Result(10))
|
||||
12. Set the [[Value]] property of the newly constructed
|
||||
object to TimeClip(UTC(Result(11))).
|
||||
|
||||
|
||||
This tests the returned value of a newly constructed
|
||||
Date object.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 july 1997
|
||||
*/
|
||||
|
||||
var TIME = 0;
|
||||
var UTC_YEAR = 1;
|
||||
var UTC_MONTH = 2;
|
||||
var UTC_DATE = 3;
|
||||
var UTC_DAY = 4;
|
||||
var UTC_HOURS = 5;
|
||||
var UTC_MINUTES = 6;
|
||||
var UTC_SECONDS = 7;
|
||||
var UTC_MS = 8;
|
||||
|
||||
var YEAR = 9;
|
||||
var MONTH = 10;
|
||||
var DATE = 11;
|
||||
var DAY = 12;
|
||||
var HOURS = 13;
|
||||
var MINUTES = 14;
|
||||
var SECONDS = 15;
|
||||
var MS = 16;
|
||||
|
||||
// for TCMS, the testcases array must be global.
|
||||
var SECTION = "15.9.3.1";
|
||||
var TITLE = "Date( year, month, date, hours, minutes, seconds )";
|
||||
|
||||
writeHeaderToLog( SECTION+" " +TITLE );
|
||||
|
||||
var testcases = new Array();
|
||||
getTestCases();
|
||||
|
||||
// all tests must call a function that returns an array of TestCase object
|
||||
test();
|
||||
|
||||
function getTestCases( ) {
|
||||
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + msPerDay*31 + msPerDay*28;
|
||||
var PST_FEB_29_2000 = UTC_FEB_29_2000 + 8*msPerHour;
|
||||
|
||||
// Dates around Feb 29, 2000
|
||||
addNewTestCase( new Date(2000,1,28,16,0,0,0),
|
||||
"new Date(2000,1,28,16,0,0,0)",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2000,1,29,0,0,0,0),
|
||||
"new Date(2000,1,29,0,0,0,0)",
|
||||
[PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2000,1,29,24,0,0,0),
|
||||
"new Date(2000,1,29,24,0,0,0)",
|
||||
[PST_FEB_29_2000+msPerDay,2000,2,1,3,8,0,0,0,2000,2,1,3,0,0,0,0] );
|
||||
/*
|
||||
// Dates around Jan 1, 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000) + TimeInYear(2001) +
|
||||
TimeInYear(2002)+ TimeInYear(2003) + TimeInYear(2004);
|
||||
var PST_JAN_1_2005 = UTC_JAN_1_2005 + 8*msPerHour;
|
||||
|
||||
addNewTestCase( new Date(2005,0,1,0,0,0,0),
|
||||
"new Date(2005,0,1,0,0,0,0)",
|
||||
[PST_JAN_1_2005,2005,0,1,6,8,0,0,0,2005,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2004,11,31,16,0,0,0),
|
||||
"new Date(2004,11,31,16,0,0,0)",
|
||||
[UTC_JAN_1_2005,2005,0,1,6,0,0,0,0,2004,11,31,5,16,0,0,0] );
|
||||
*/
|
||||
/*
|
||||
This test case is incorrect. Need to fix the DaylightSavings functions in
|
||||
shell.js for this to work properly.
|
||||
|
||||
// Daylight Savings Time
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,1,59,59,999),
|
||||
"new Date(1998,3,5,1,59,59,999)",
|
||||
[DST_START_1998-1,1998,3,5,0,9,59,59,999,1998,3,5,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,2,0,0,0),
|
||||
"new Date(1998,3,5,2,0,0,0)",
|
||||
[DST_START_1998,1998,3,5,0,10,0,0,0,1998,3,5,0,3,0,0,0]);
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,1,59,59,999),
|
||||
"new Date(1998,9,25,1,59,59,999)",
|
||||
[DST_END_1998-1,1998,9,25,0,8,59,59,999,1998,9,25,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,2,0,0,0),
|
||||
"new Date(1998,9,25,2,0,0,0)",
|
||||
[DST_END_1998,1998,9,25,0,9,0,0,0,1998,9,25,0,1,0,0,0] );
|
||||
*/
|
||||
}
|
||||
|
||||
function addNewTestCase( DateCase, DateString, ResultArray ) {
|
||||
|
||||
DateCase = DateCase;
|
||||
|
||||
item = testcases.length;
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME], DateCase.getTime() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME], DateCase.valueOf() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", ResultArray[UTC_YEAR], DateCase.getUTCFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", ResultArray[UTC_MONTH], DateCase.getUTCMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", ResultArray[UTC_DATE], DateCase.getUTCDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", ResultArray[UTC_DAY], DateCase.getUTCDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCHours()", ResultArray[UTC_HOURS], DateCase.getUTCHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMinutes()", ResultArray[UTC_MINUTES],DateCase.getUTCMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", ResultArray[UTC_MS], DateCase.getUTCMilliseconds() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", ResultArray[YEAR], DateCase.getFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", ResultArray[MONTH], DateCase.getMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDate()", ResultArray[DATE], DateCase.getDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDay()", ResultArray[DAY], DateCase.getDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getHours()", ResultArray[HOURS], DateCase.getHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", ResultArray[MINUTES], DateCase.getMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", ResultArray[SECONDS], DateCase.getSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", ResultArray[MS], DateCase.getMilliseconds() );
|
||||
|
||||
}
|
||||
|
||||
function test() {
|
||||
for( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = " +
|
||||
testcases[tc].actual );
|
||||
}
|
||||
stopTest();
|
||||
return testcases;
|
||||
}
|
||||
|
||||
@@ -1,167 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.3.1.js
|
||||
ECMA Section: 15.9.3.1 new Date (year, month, date, hours, minutes, seconds, ms)
|
||||
Description: The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Date prototype object,
|
||||
the one that is the initial value of Date.prototype.
|
||||
|
||||
The [[Class]] property of the newly constructed object
|
||||
is set as follows:
|
||||
1. Call ToNumber(year)
|
||||
2. Call ToNumber(month)
|
||||
3. Call ToNumber(date)
|
||||
4. Call ToNumber(hours)
|
||||
5. Call ToNumber(minutes)
|
||||
6. Call ToNumber(seconds)
|
||||
7. Call ToNumber(ms)
|
||||
8. If Result(1)is NaN and 0 <= ToInteger(Result(1)) <=
|
||||
99, Result(8) is 1900+ToInteger(Result(1)); otherwise,
|
||||
Result(8) is Result(1)
|
||||
9. Compute MakeDay(Result(8), Result(2), Result(3)
|
||||
10. Compute MakeTime(Result(4), Result(5), Result(6),
|
||||
Result(7)
|
||||
11. Compute MakeDate(Result(9), Result(10))
|
||||
12. Set the [[Value]] property of the newly constructed
|
||||
object to TimeClip(UTC(Result(11))).
|
||||
|
||||
|
||||
This tests the returned value of a newly constructed
|
||||
Date object.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 7 july 1997
|
||||
*/
|
||||
|
||||
var TIME = 0;
|
||||
var UTC_YEAR = 1;
|
||||
var UTC_MONTH = 2;
|
||||
var UTC_DATE = 3;
|
||||
var UTC_DAY = 4;
|
||||
var UTC_HOURS = 5;
|
||||
var UTC_MINUTES = 6;
|
||||
var UTC_SECONDS = 7;
|
||||
var UTC_MS = 8;
|
||||
|
||||
var YEAR = 9;
|
||||
var MONTH = 10;
|
||||
var DATE = 11;
|
||||
var DAY = 12;
|
||||
var HOURS = 13;
|
||||
var MINUTES = 14;
|
||||
var SECONDS = 15;
|
||||
var MS = 16;
|
||||
|
||||
// for TCMS, the testcases array must be global.
|
||||
var SECTION = "15.9.3.1";
|
||||
var TITLE = "Date( year, month, date, hours, minutes, seconds )";
|
||||
|
||||
writeHeaderToLog( SECTION+" " +TITLE );
|
||||
|
||||
var testcases = new Array();
|
||||
getTestCases();
|
||||
|
||||
// all tests must call a function that returns an array of TestCase object
|
||||
test();
|
||||
|
||||
function getTestCases( ) {
|
||||
|
||||
// Dates around Jan 1, 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000) + TimeInYear(2001) +
|
||||
TimeInYear(2002)+ TimeInYear(2003) + TimeInYear(2004);
|
||||
var PST_JAN_1_2005 = UTC_JAN_1_2005 + 8*msPerHour;
|
||||
|
||||
addNewTestCase( new Date(2005,0,1,0,0,0,0),
|
||||
"new Date(2005,0,1,0,0,0,0)",
|
||||
[PST_JAN_1_2005,2005,0,1,6,8,0,0,0,2005,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(2004,11,31,16,0,0,0),
|
||||
"new Date(2004,11,31,16,0,0,0)",
|
||||
[UTC_JAN_1_2005,2005,0,1,6,0,0,0,0,2004,11,31,5,16,0,0,0] );
|
||||
/*
|
||||
This test case is incorrect. Need to fix the DaylightSavings functions in
|
||||
shell.js for this to work properly.
|
||||
|
||||
// Daylight Savings Time
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,1,59,59,999),
|
||||
"new Date(1998,3,5,1,59,59,999)",
|
||||
[DST_START_1998-1,1998,3,5,0,9,59,59,999,1998,3,5,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(1998,3,5,2,0,0,0),
|
||||
"new Date(1998,3,5,2,0,0,0)",
|
||||
[DST_START_1998,1998,3,5,0,10,0,0,0,1998,3,5,0,3,0,0,0]);
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,1,59,59,999),
|
||||
"new Date(1998,9,25,1,59,59,999)",
|
||||
[DST_END_1998-1,1998,9,25,0,8,59,59,999,1998,9,25,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase ( new Date(1998,9,25,2,0,0,0),
|
||||
"new Date(1998,9,25,2,0,0,0)",
|
||||
[DST_END_1998,1998,9,25,0,9,0,0,0,1998,9,25,0,1,0,0,0] );
|
||||
*/
|
||||
}
|
||||
|
||||
function addNewTestCase( DateCase, DateString, ResultArray ) {
|
||||
|
||||
DateCase = DateCase;
|
||||
|
||||
item = testcases.length;
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME], DateCase.getTime() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME], DateCase.valueOf() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", ResultArray[UTC_YEAR], DateCase.getUTCFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", ResultArray[UTC_MONTH], DateCase.getUTCMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", ResultArray[UTC_DATE], DateCase.getUTCDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", ResultArray[UTC_DAY], DateCase.getUTCDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCHours()", ResultArray[UTC_HOURS], DateCase.getUTCHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMinutes()", ResultArray[UTC_MINUTES],DateCase.getUTCMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", ResultArray[UTC_MS], DateCase.getUTCMilliseconds() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", ResultArray[YEAR], DateCase.getFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", ResultArray[MONTH], DateCase.getMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDate()", ResultArray[DATE], DateCase.getDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDay()", ResultArray[DAY], DateCase.getDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getHours()", ResultArray[HOURS], DateCase.getHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", ResultArray[MINUTES], DateCase.getMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", ResultArray[SECONDS], DateCase.getSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", ResultArray[MS], DateCase.getMilliseconds() );
|
||||
|
||||
}
|
||||
|
||||
function test() {
|
||||
for( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = " +
|
||||
testcases[tc].actual );
|
||||
}
|
||||
stopTest();
|
||||
return testcases;
|
||||
}
|
||||
|
||||
@@ -1,294 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.3.8.js
|
||||
ECMA Section: 15.9.3.8 The Date Constructor
|
||||
new Date( value )
|
||||
Description: The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Date prototype object,
|
||||
the one that is the initial valiue of Date.prototype.
|
||||
|
||||
The [[Class]] property of the newly constructed object is
|
||||
set to "Date".
|
||||
|
||||
The [[Value]] property of the newly constructed object is
|
||||
set as follows:
|
||||
|
||||
1. Call ToPrimitive(value)
|
||||
2. If Type( Result(1) ) is String, then go to step 5.
|
||||
3. Let V be ToNumber( Result(1) ).
|
||||
4. Set the [[Value]] property of the newly constructed
|
||||
object to TimeClip(V) and return.
|
||||
5. Parse Result(1) as a date, in exactly the same manner
|
||||
as for the parse method. Let V be the time value for
|
||||
this date.
|
||||
6. Go to step 4.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 28 october 1997
|
||||
Version: 9706
|
||||
|
||||
*/
|
||||
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var SECTION = "15.9.3.8";
|
||||
var TYPEOF = "object";
|
||||
|
||||
var TIME = 0;
|
||||
var UTC_YEAR = 1;
|
||||
var UTC_MONTH = 2;
|
||||
var UTC_DATE = 3;
|
||||
var UTC_DAY = 4;
|
||||
var UTC_HOURS = 5;
|
||||
var UTC_MINUTES = 6;
|
||||
var UTC_SECONDS = 7;
|
||||
var UTC_MS = 8;
|
||||
|
||||
var YEAR = 9;
|
||||
var MONTH = 10;
|
||||
var DATE = 11;
|
||||
var DAY = 12;
|
||||
var HOURS = 13;
|
||||
var MINUTES = 14;
|
||||
var SECONDS = 15;
|
||||
var MS = 16;
|
||||
|
||||
|
||||
// for TCMS, the testcases array must be global.
|
||||
var tc= 0;
|
||||
var TITLE = "Date constructor: new Date( value )";
|
||||
var SECTION = "15.9.3.8";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
|
||||
writeHeaderToLog( SECTION +" " + TITLE );
|
||||
|
||||
testcases = new Array();
|
||||
getTestCases();
|
||||
|
||||
// all tests must call a function that returns a boolean value
|
||||
test();
|
||||
|
||||
function getTestCases( ) {
|
||||
var TZ_ADJUST = -TZ_DIFF * msPerHour;
|
||||
|
||||
// Dates around 1970
|
||||
addNewTestCase( new Date(0),
|
||||
"new Date(0)",
|
||||
[0,1970,0,1,4,0,0,0,0,1969,11,31,3,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(1),
|
||||
"new Date(1)",
|
||||
[1,1970,0,1,4,0,0,0,1,1969,11,31,3,16,0,0,1] );
|
||||
|
||||
addNewTestCase( new Date(true),
|
||||
"new Date(true)",
|
||||
[1,1970,0,1,4,0,0,0,1,1969,11,31,3,16,0,0,1] );
|
||||
|
||||
addNewTestCase( new Date(false),
|
||||
"new Date(false)",
|
||||
[0,1970,0,1,4,0,0,0,0,1969,11,31,3,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(0)).toString() ),
|
||||
"new Date(\""+ (new Date(0)).toString()+"\" )",
|
||||
[0,1970,0,1,4,0,0,0,0,1969,11,31,3,16,0,0,0] );
|
||||
/*
|
||||
// addNewTestCase( "new Date(\""+ (new Date(0)).toLocaleString()+"\")", [0,1970,0,1,4,0,0,0,0,1969,11,31,3,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date((new Date(0)).toUTCString()),
|
||||
"new Date(\""+ (new Date(0)).toUTCString()+"\" )",
|
||||
[0,1970,0,1,4,0,0,0,0,1969,11,31,3,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date((new Date(1)).toString()),
|
||||
"new Date(\""+ (new Date(1)).toString()+"\" )",
|
||||
[0,1970,0,1,4,0,0,0,0,1969,11,31,3,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( TZ_ADJUST ),
|
||||
"new Date(" + TZ_ADJUST+")",
|
||||
[TZ_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date((new Date(TZ_ADJUST)).toString()),
|
||||
"new Date(\""+ (new Date(TZ_ADJUST)).toString()+"\")",
|
||||
[TZ_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
|
||||
|
||||
// addNewTestCase( "new Date(\""+ (new Date(TZ_ADJUST)).toLocaleString()+"\")",[TZ_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TZ_ADJUST)).toUTCString() ),
|
||||
"new Date(\""+ (new Date(TZ_ADJUST)).toUTCString()+"\")",
|
||||
[TZ_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
|
||||
|
||||
// Dates around 2000
|
||||
|
||||
addNewTestCase( new Date(TIME_2000+TZ_ADJUST),
|
||||
"new Date(" +(TIME_2000+TZ_ADJUST)+")",
|
||||
[TIME_2000+TZ_ADJUST,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(TIME_2000),
|
||||
"new Date(" +TIME_2000+")",
|
||||
[TIME_2000,2000,0,1,6,0,0,0,0,1999,11,31,5,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_2000+TZ_ADJUST)).toString()),
|
||||
"new Date(\"" +(new Date(TIME_2000+TZ_ADJUST)).toString()+"\")",
|
||||
[TIME_2000+TZ_ADJUST,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date((new Date(TIME_2000)).toString()),
|
||||
"new Date(\"" +(new Date(TIME_2000)).toString()+"\")",
|
||||
[TIME_2000,2000,0,1,6,0,0,0,0,1999,11,31,5,16,0,0,0] );
|
||||
|
||||
// addNewTestCase( "new Date(\"" +(new Date(TIME_2000+TZ_ADJUST)).toLocaleString()+"\")", [TIME_2000+TZ_ADJUST,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
|
||||
// addNewTestCase( "new Date(\"" +(new Date(TIME_2000)).toLocaleString()+"\")", [TIME_2000,2000,0,1,6,0,0,0,0,1999,11,31,5,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_2000+TZ_ADJUST)).toUTCString()),
|
||||
"new Date(\"" +(new Date(TIME_2000+TZ_ADJUST)).toUTCString()+"\")",
|
||||
[TIME_2000+TZ_ADJUST,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_2000)).toUTCString()),
|
||||
"new Date(\"" +(new Date(TIME_2000)).toUTCString()+"\")",
|
||||
[TIME_2000,2000,0,1,6,0,0,0,0,1999,11,31,5,16,0,0,0] );
|
||||
|
||||
// Dates around Feb 29, 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerDay;
|
||||
var PST_FEB_29_2000 = UTC_FEB_29_2000 + TZ_ADJUST;
|
||||
|
||||
addNewTestCase( new Date(UTC_FEB_29_2000),
|
||||
"new Date("+UTC_FEB_29_2000+")",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(PST_FEB_29_2000),
|
||||
"new Date("+PST_FEB_29_2000+")",
|
||||
[PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(UTC_FEB_29_2000)).toString() ),
|
||||
"new Date(\""+(new Date(UTC_FEB_29_2000)).toString()+"\")",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_FEB_29_2000)).toString() ),
|
||||
"new Date(\""+(new Date(PST_FEB_29_2000)).toString()+"\")",
|
||||
[PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
// Parsing toLocaleString() is not guaranteed by ECMA.
|
||||
// addNewTestCase( "new Date(\""+(new Date(UTC_FEB_29_2000)).toLocaleString()+"\")", [UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
// addNewTestCase( "new Date(\""+(new Date(PST_FEB_29_2000)).toLocaleString()+"\")", [PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(UTC_FEB_29_2000)).toGMTString() ),
|
||||
"new Date(\""+(new Date(UTC_FEB_29_2000)).toGMTString()+"\")",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_FEB_29_2000)).toGMTString() ),
|
||||
"new Date(\""+(new Date(PST_FEB_29_2000)).toGMTString()+"\")",
|
||||
[PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
// Dates around 1900
|
||||
|
||||
var PST_1900 = TIME_1900 + 8*msPerHour;
|
||||
|
||||
addNewTestCase( new Date( TIME_1900 ),
|
||||
"new Date("+TIME_1900+")",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(PST_1900),
|
||||
"new Date("+PST_1900+")",
|
||||
[ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_1900)).toString() ),
|
||||
"new Date(\""+(new Date(TIME_1900)).toString()+"\")",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_1900)).toString() ),
|
||||
"new Date(\""+(new Date(PST_1900 )).toString()+"\")",
|
||||
[ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_1900)).toUTCString() ),
|
||||
"new Date(\""+(new Date(TIME_1900)).toUTCString()+"\")",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_1900)).toUTCString() ),
|
||||
"new Date(\""+(new Date(PST_1900 )).toUTCString()+"\")",
|
||||
[ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
// addNewTestCase( "new Date(\""+(new Date(TIME_1900)).toLocaleString()+"\")", [TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
// addNewTestCase( "new Date(\""+(new Date(PST_1900 )).toLocaleString()+"\")", [ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
*/
|
||||
/*
|
||||
This test case is incorrect. Need to fix the DaylightSavings functions in
|
||||
shell.js for this to work properly.
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
addNewTestCase( new Date(DST_START_1998-1),
|
||||
"new Date("+(DST_START_1998-1)+")",
|
||||
[DST_START_1998-1,1998,3,5,0,9,59,59,999,1998,3,5,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(DST_START_1998),
|
||||
"new Date("+DST_START_1998+")",
|
||||
[DST_START_1998,1998,3,5,0,10,0,0,0,1998,3,5,0,3,0,0,0]);
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addNewTestCase ( new Date(DST_END_1998-1),
|
||||
"new Date("+(DST_END_1998-1)+")",
|
||||
[DST_END_1998-1,1998,9,25,0,8,59,59,999,1998,9,25,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase ( new Date(DST_END_1998),
|
||||
"new Date("+DST_END_1998+")",
|
||||
[DST_END_1998,1998,9,25,0,9,0,0,0,1998,9,25,0,1,0,0,0] );
|
||||
*/
|
||||
}
|
||||
|
||||
function addNewTestCase( DateCase, DateString, ResultArray ) {
|
||||
DateCase = DateCase;
|
||||
|
||||
item = testcases.length;
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME], DateCase.getTime() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME], DateCase.valueOf() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", ResultArray[UTC_YEAR], DateCase.getUTCFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", ResultArray[UTC_MONTH], DateCase.getUTCMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", ResultArray[UTC_DATE], DateCase.getUTCDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", ResultArray[UTC_DAY], DateCase.getUTCDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCHours()", ResultArray[UTC_HOURS], DateCase.getUTCHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMinutes()", ResultArray[UTC_MINUTES],DateCase.getUTCMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", ResultArray[UTC_MS], DateCase.getUTCMilliseconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", ResultArray[YEAR], DateCase.getFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", ResultArray[MONTH], DateCase.getMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDate()", ResultArray[DATE], DateCase.getDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDay()", ResultArray[DAY], DateCase.getDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getHours()", ResultArray[HOURS], DateCase.getHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", ResultArray[MINUTES], DateCase.getMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", ResultArray[SECONDS], DateCase.getSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", ResultArray[MS], DateCase.getMilliseconds() );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for( tc = 0; tc < testcases.length; tc++ ) {
|
||||
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = " +
|
||||
testcases[tc].actual );
|
||||
}
|
||||
stopTest();
|
||||
|
||||
// all tests must return a boolean value
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,270 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.3.8.js
|
||||
ECMA Section: 15.9.3.8 The Date Constructor
|
||||
new Date( value )
|
||||
Description: The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Date prototype object,
|
||||
the one that is the initial valiue of Date.prototype.
|
||||
|
||||
The [[Class]] property of the newly constructed object is
|
||||
set to "Date".
|
||||
|
||||
The [[Value]] property of the newly constructed object is
|
||||
set as follows:
|
||||
|
||||
1. Call ToPrimitive(value)
|
||||
2. If Type( Result(1) ) is String, then go to step 5.
|
||||
3. Let V be ToNumber( Result(1) ).
|
||||
4. Set the [[Value]] property of the newly constructed
|
||||
object to TimeClip(V) and return.
|
||||
5. Parse Result(1) as a date, in exactly the same manner
|
||||
as for the parse method. Let V be the time value for
|
||||
this date.
|
||||
6. Go to step 4.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 28 october 1997
|
||||
Version: 9706
|
||||
|
||||
*/
|
||||
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var SECTION = "15.9.3.8";
|
||||
var TYPEOF = "object";
|
||||
|
||||
var TIME = 0;
|
||||
var UTC_YEAR = 1;
|
||||
var UTC_MONTH = 2;
|
||||
var UTC_DATE = 3;
|
||||
var UTC_DAY = 4;
|
||||
var UTC_HOURS = 5;
|
||||
var UTC_MINUTES = 6;
|
||||
var UTC_SECONDS = 7;
|
||||
var UTC_MS = 8;
|
||||
|
||||
var YEAR = 9;
|
||||
var MONTH = 10;
|
||||
var DATE = 11;
|
||||
var DAY = 12;
|
||||
var HOURS = 13;
|
||||
var MINUTES = 14;
|
||||
var SECONDS = 15;
|
||||
var MS = 16;
|
||||
|
||||
|
||||
// for TCMS, the testcases array must be global.
|
||||
var tc= 0;
|
||||
var TITLE = "Date constructor: new Date( value )";
|
||||
var SECTION = "15.9.3.8";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
|
||||
writeHeaderToLog( SECTION +" " + TITLE );
|
||||
|
||||
testcases = new Array();
|
||||
getTestCases();
|
||||
|
||||
// all tests must call a function that returns a boolean value
|
||||
test();
|
||||
|
||||
function getTestCases( ) {
|
||||
var TZ_ADJUST = -TZ_DIFF * msPerHour;
|
||||
|
||||
addNewTestCase( new Date((new Date(0)).toUTCString()),
|
||||
"new Date(\""+ (new Date(0)).toUTCString()+"\" )",
|
||||
[0,1970,0,1,4,0,0,0,0,1969,11,31,3,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date((new Date(1)).toString()),
|
||||
"new Date(\""+ (new Date(1)).toString()+"\" )",
|
||||
[0,1970,0,1,4,0,0,0,0,1969,11,31,3,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( TZ_ADJUST ),
|
||||
"new Date(" + TZ_ADJUST+")",
|
||||
[TZ_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date((new Date(TZ_ADJUST)).toString()),
|
||||
"new Date(\""+ (new Date(TZ_ADJUST)).toString()+"\")",
|
||||
[TZ_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
|
||||
|
||||
|
||||
addNewTestCase( new Date( (new Date(TZ_ADJUST)).toUTCString() ),
|
||||
"new Date(\""+ (new Date(TZ_ADJUST)).toUTCString()+"\")",
|
||||
[TZ_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
|
||||
/*
|
||||
// Dates around 2000
|
||||
|
||||
addNewTestCase( new Date(TIME_2000+TZ_ADJUST),
|
||||
"new Date(" +(TIME_2000+TZ_ADJUST)+")",
|
||||
[TIME_2000+TZ_ADJUST,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(TIME_2000),
|
||||
"new Date(" +TIME_2000+")",
|
||||
[TIME_2000,2000,0,1,6,0,0,0,0,1999,11,31,5,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_2000+TZ_ADJUST)).toString()),
|
||||
"new Date(\"" +(new Date(TIME_2000+TZ_ADJUST)).toString()+"\")",
|
||||
[TIME_2000+TZ_ADJUST,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date((new Date(TIME_2000)).toString()),
|
||||
"new Date(\"" +(new Date(TIME_2000)).toString()+"\")",
|
||||
[TIME_2000,2000,0,1,6,0,0,0,0,1999,11,31,5,16,0,0,0] );
|
||||
|
||||
// addNewTestCase( "new Date(\"" +(new Date(TIME_2000+TZ_ADJUST)).toLocaleString()+"\")", [TIME_2000+TZ_ADJUST,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
|
||||
// addNewTestCase( "new Date(\"" +(new Date(TIME_2000)).toLocaleString()+"\")", [TIME_2000,2000,0,1,6,0,0,0,0,1999,11,31,5,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_2000+TZ_ADJUST)).toUTCString()),
|
||||
"new Date(\"" +(new Date(TIME_2000+TZ_ADJUST)).toUTCString()+"\")",
|
||||
[TIME_2000+TZ_ADJUST,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_2000)).toUTCString()),
|
||||
"new Date(\"" +(new Date(TIME_2000)).toUTCString()+"\")",
|
||||
[TIME_2000,2000,0,1,6,0,0,0,0,1999,11,31,5,16,0,0,0] );
|
||||
|
||||
// Dates around Feb 29, 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerDay;
|
||||
var PST_FEB_29_2000 = UTC_FEB_29_2000 + TZ_ADJUST;
|
||||
|
||||
addNewTestCase( new Date(UTC_FEB_29_2000),
|
||||
"new Date("+UTC_FEB_29_2000+")",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(PST_FEB_29_2000),
|
||||
"new Date("+PST_FEB_29_2000+")",
|
||||
[PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(UTC_FEB_29_2000)).toString() ),
|
||||
"new Date(\""+(new Date(UTC_FEB_29_2000)).toString()+"\")",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_FEB_29_2000)).toString() ),
|
||||
"new Date(\""+(new Date(PST_FEB_29_2000)).toString()+"\")",
|
||||
[PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
// Parsing toLocaleString() is not guaranteed by ECMA.
|
||||
// addNewTestCase( "new Date(\""+(new Date(UTC_FEB_29_2000)).toLocaleString()+"\")", [UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
// addNewTestCase( "new Date(\""+(new Date(PST_FEB_29_2000)).toLocaleString()+"\")", [PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(UTC_FEB_29_2000)).toGMTString() ),
|
||||
"new Date(\""+(new Date(UTC_FEB_29_2000)).toGMTString()+"\")",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_FEB_29_2000)).toGMTString() ),
|
||||
"new Date(\""+(new Date(PST_FEB_29_2000)).toGMTString()+"\")",
|
||||
[PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
// Dates around 1900
|
||||
|
||||
var PST_1900 = TIME_1900 + 8*msPerHour;
|
||||
|
||||
addNewTestCase( new Date( TIME_1900 ),
|
||||
"new Date("+TIME_1900+")",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(PST_1900),
|
||||
"new Date("+PST_1900+")",
|
||||
[ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_1900)).toString() ),
|
||||
"new Date(\""+(new Date(TIME_1900)).toString()+"\")",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_1900)).toString() ),
|
||||
"new Date(\""+(new Date(PST_1900 )).toString()+"\")",
|
||||
[ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_1900)).toUTCString() ),
|
||||
"new Date(\""+(new Date(TIME_1900)).toUTCString()+"\")",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_1900)).toUTCString() ),
|
||||
"new Date(\""+(new Date(PST_1900 )).toUTCString()+"\")",
|
||||
[ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
// addNewTestCase( "new Date(\""+(new Date(TIME_1900)).toLocaleString()+"\")", [TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
// addNewTestCase( "new Date(\""+(new Date(PST_1900 )).toLocaleString()+"\")", [ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
*/
|
||||
/*
|
||||
This test case is incorrect. Need to fix the DaylightSavings functions in
|
||||
shell.js for this to work properly.
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
addNewTestCase( new Date(DST_START_1998-1),
|
||||
"new Date("+(DST_START_1998-1)+")",
|
||||
[DST_START_1998-1,1998,3,5,0,9,59,59,999,1998,3,5,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(DST_START_1998),
|
||||
"new Date("+DST_START_1998+")",
|
||||
[DST_START_1998,1998,3,5,0,10,0,0,0,1998,3,5,0,3,0,0,0]);
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addNewTestCase ( new Date(DST_END_1998-1),
|
||||
"new Date("+(DST_END_1998-1)+")",
|
||||
[DST_END_1998-1,1998,9,25,0,8,59,59,999,1998,9,25,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase ( new Date(DST_END_1998),
|
||||
"new Date("+DST_END_1998+")",
|
||||
[DST_END_1998,1998,9,25,0,9,0,0,0,1998,9,25,0,1,0,0,0] );
|
||||
*/
|
||||
}
|
||||
|
||||
function addNewTestCase( DateCase, DateString, ResultArray ) {
|
||||
DateCase = DateCase;
|
||||
|
||||
item = testcases.length;
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME], DateCase.getTime() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME], DateCase.valueOf() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", ResultArray[UTC_YEAR], DateCase.getUTCFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", ResultArray[UTC_MONTH], DateCase.getUTCMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", ResultArray[UTC_DATE], DateCase.getUTCDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", ResultArray[UTC_DAY], DateCase.getUTCDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCHours()", ResultArray[UTC_HOURS], DateCase.getUTCHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMinutes()", ResultArray[UTC_MINUTES],DateCase.getUTCMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", ResultArray[UTC_MS], DateCase.getUTCMilliseconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", ResultArray[YEAR], DateCase.getFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", ResultArray[MONTH], DateCase.getMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDate()", ResultArray[DATE], DateCase.getDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDay()", ResultArray[DAY], DateCase.getDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getHours()", ResultArray[HOURS], DateCase.getHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", ResultArray[MINUTES], DateCase.getMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", ResultArray[SECONDS], DateCase.getSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", ResultArray[MS], DateCase.getMilliseconds() );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for( tc = 0; tc < testcases.length; tc++ ) {
|
||||
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = " +
|
||||
testcases[tc].actual );
|
||||
}
|
||||
stopTest();
|
||||
|
||||
// all tests must return a boolean value
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,248 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.3.8.js
|
||||
ECMA Section: 15.9.3.8 The Date Constructor
|
||||
new Date( value )
|
||||
Description: The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Date prototype object,
|
||||
the one that is the initial valiue of Date.prototype.
|
||||
|
||||
The [[Class]] property of the newly constructed object is
|
||||
set to "Date".
|
||||
|
||||
The [[Value]] property of the newly constructed object is
|
||||
set as follows:
|
||||
|
||||
1. Call ToPrimitive(value)
|
||||
2. If Type( Result(1) ) is String, then go to step 5.
|
||||
3. Let V be ToNumber( Result(1) ).
|
||||
4. Set the [[Value]] property of the newly constructed
|
||||
object to TimeClip(V) and return.
|
||||
5. Parse Result(1) as a date, in exactly the same manner
|
||||
as for the parse method. Let V be the time value for
|
||||
this date.
|
||||
6. Go to step 4.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 28 october 1997
|
||||
Version: 9706
|
||||
|
||||
*/
|
||||
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var SECTION = "15.9.3.8";
|
||||
var TYPEOF = "object";
|
||||
|
||||
var TIME = 0;
|
||||
var UTC_YEAR = 1;
|
||||
var UTC_MONTH = 2;
|
||||
var UTC_DATE = 3;
|
||||
var UTC_DAY = 4;
|
||||
var UTC_HOURS = 5;
|
||||
var UTC_MINUTES = 6;
|
||||
var UTC_SECONDS = 7;
|
||||
var UTC_MS = 8;
|
||||
|
||||
var YEAR = 9;
|
||||
var MONTH = 10;
|
||||
var DATE = 11;
|
||||
var DAY = 12;
|
||||
var HOURS = 13;
|
||||
var MINUTES = 14;
|
||||
var SECONDS = 15;
|
||||
var MS = 16;
|
||||
|
||||
|
||||
// for TCMS, the testcases array must be global.
|
||||
var tc= 0;
|
||||
var TITLE = "Date constructor: new Date( value )";
|
||||
var SECTION = "15.9.3.8";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
|
||||
writeHeaderToLog( SECTION +" " + TITLE );
|
||||
|
||||
testcases = new Array();
|
||||
getTestCases();
|
||||
|
||||
// all tests must call a function that returns a boolean value
|
||||
test();
|
||||
|
||||
function getTestCases( ) {
|
||||
var TZ_ADJUST = -TZ_DIFF * msPerHour;
|
||||
|
||||
|
||||
// Dates around 2000
|
||||
|
||||
addNewTestCase( new Date(TIME_2000+TZ_ADJUST),
|
||||
"new Date(" +(TIME_2000+TZ_ADJUST)+")",
|
||||
[TIME_2000+TZ_ADJUST,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(TIME_2000),
|
||||
"new Date(" +TIME_2000+")",
|
||||
[TIME_2000,2000,0,1,6,0,0,0,0,1999,11,31,5,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_2000+TZ_ADJUST)).toString()),
|
||||
"new Date(\"" +(new Date(TIME_2000+TZ_ADJUST)).toString()+"\")",
|
||||
[TIME_2000+TZ_ADJUST,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date((new Date(TIME_2000)).toString()),
|
||||
"new Date(\"" +(new Date(TIME_2000)).toString()+"\")",
|
||||
[TIME_2000,2000,0,1,6,0,0,0,0,1999,11,31,5,16,0,0,0] );
|
||||
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_2000+TZ_ADJUST)).toUTCString()),
|
||||
"new Date(\"" +(new Date(TIME_2000+TZ_ADJUST)).toUTCString()+"\")",
|
||||
[TIME_2000+TZ_ADJUST,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_2000)).toUTCString()),
|
||||
"new Date(\"" +(new Date(TIME_2000)).toUTCString()+"\")",
|
||||
[TIME_2000,2000,0,1,6,0,0,0,0,1999,11,31,5,16,0,0,0] );
|
||||
/*
|
||||
// Dates around Feb 29, 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerDay;
|
||||
var PST_FEB_29_2000 = UTC_FEB_29_2000 + TZ_ADJUST;
|
||||
|
||||
addNewTestCase( new Date(UTC_FEB_29_2000),
|
||||
"new Date("+UTC_FEB_29_2000+")",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(PST_FEB_29_2000),
|
||||
"new Date("+PST_FEB_29_2000+")",
|
||||
[PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(UTC_FEB_29_2000)).toString() ),
|
||||
"new Date(\""+(new Date(UTC_FEB_29_2000)).toString()+"\")",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_FEB_29_2000)).toString() ),
|
||||
"new Date(\""+(new Date(PST_FEB_29_2000)).toString()+"\")",
|
||||
[PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
// Parsing toLocaleString() is not guaranteed by ECMA.
|
||||
// addNewTestCase( "new Date(\""+(new Date(UTC_FEB_29_2000)).toLocaleString()+"\")", [UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
// addNewTestCase( "new Date(\""+(new Date(PST_FEB_29_2000)).toLocaleString()+"\")", [PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(UTC_FEB_29_2000)).toGMTString() ),
|
||||
"new Date(\""+(new Date(UTC_FEB_29_2000)).toGMTString()+"\")",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_FEB_29_2000)).toGMTString() ),
|
||||
"new Date(\""+(new Date(PST_FEB_29_2000)).toGMTString()+"\")",
|
||||
[PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
// Dates around 1900
|
||||
|
||||
var PST_1900 = TIME_1900 + 8*msPerHour;
|
||||
|
||||
addNewTestCase( new Date( TIME_1900 ),
|
||||
"new Date("+TIME_1900+")",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(PST_1900),
|
||||
"new Date("+PST_1900+")",
|
||||
[ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_1900)).toString() ),
|
||||
"new Date(\""+(new Date(TIME_1900)).toString()+"\")",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_1900)).toString() ),
|
||||
"new Date(\""+(new Date(PST_1900 )).toString()+"\")",
|
||||
[ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_1900)).toUTCString() ),
|
||||
"new Date(\""+(new Date(TIME_1900)).toUTCString()+"\")",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_1900)).toUTCString() ),
|
||||
"new Date(\""+(new Date(PST_1900 )).toUTCString()+"\")",
|
||||
[ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
// addNewTestCase( "new Date(\""+(new Date(TIME_1900)).toLocaleString()+"\")", [TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
// addNewTestCase( "new Date(\""+(new Date(PST_1900 )).toLocaleString()+"\")", [ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
*/
|
||||
/*
|
||||
This test case is incorrect. Need to fix the DaylightSavings functions in
|
||||
shell.js for this to work properly.
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
addNewTestCase( new Date(DST_START_1998-1),
|
||||
"new Date("+(DST_START_1998-1)+")",
|
||||
[DST_START_1998-1,1998,3,5,0,9,59,59,999,1998,3,5,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(DST_START_1998),
|
||||
"new Date("+DST_START_1998+")",
|
||||
[DST_START_1998,1998,3,5,0,10,0,0,0,1998,3,5,0,3,0,0,0]);
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addNewTestCase ( new Date(DST_END_1998-1),
|
||||
"new Date("+(DST_END_1998-1)+")",
|
||||
[DST_END_1998-1,1998,9,25,0,8,59,59,999,1998,9,25,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase ( new Date(DST_END_1998),
|
||||
"new Date("+DST_END_1998+")",
|
||||
[DST_END_1998,1998,9,25,0,9,0,0,0,1998,9,25,0,1,0,0,0] );
|
||||
*/
|
||||
}
|
||||
|
||||
function addNewTestCase( DateCase, DateString, ResultArray ) {
|
||||
DateCase = DateCase;
|
||||
|
||||
item = testcases.length;
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME], DateCase.getTime() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME], DateCase.valueOf() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", ResultArray[UTC_YEAR], DateCase.getUTCFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", ResultArray[UTC_MONTH], DateCase.getUTCMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", ResultArray[UTC_DATE], DateCase.getUTCDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", ResultArray[UTC_DAY], DateCase.getUTCDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCHours()", ResultArray[UTC_HOURS], DateCase.getUTCHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMinutes()", ResultArray[UTC_MINUTES],DateCase.getUTCMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", ResultArray[UTC_MS], DateCase.getUTCMilliseconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", ResultArray[YEAR], DateCase.getFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", ResultArray[MONTH], DateCase.getMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDate()", ResultArray[DATE], DateCase.getDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDay()", ResultArray[DAY], DateCase.getDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getHours()", ResultArray[HOURS], DateCase.getHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", ResultArray[MINUTES], DateCase.getMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", ResultArray[SECONDS], DateCase.getSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", ResultArray[MS], DateCase.getMilliseconds() );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for( tc = 0; tc < testcases.length; tc++ ) {
|
||||
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = " +
|
||||
testcases[tc].actual );
|
||||
}
|
||||
stopTest();
|
||||
|
||||
// all tests must return a boolean value
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,217 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.3.8.js
|
||||
ECMA Section: 15.9.3.8 The Date Constructor
|
||||
new Date( value )
|
||||
Description: The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Date prototype object,
|
||||
the one that is the initial valiue of Date.prototype.
|
||||
|
||||
The [[Class]] property of the newly constructed object is
|
||||
set to "Date".
|
||||
|
||||
The [[Value]] property of the newly constructed object is
|
||||
set as follows:
|
||||
|
||||
1. Call ToPrimitive(value)
|
||||
2. If Type( Result(1) ) is String, then go to step 5.
|
||||
3. Let V be ToNumber( Result(1) ).
|
||||
4. Set the [[Value]] property of the newly constructed
|
||||
object to TimeClip(V) and return.
|
||||
5. Parse Result(1) as a date, in exactly the same manner
|
||||
as for the parse method. Let V be the time value for
|
||||
this date.
|
||||
6. Go to step 4.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 28 october 1997
|
||||
Version: 9706
|
||||
|
||||
*/
|
||||
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var SECTION = "15.9.3.8";
|
||||
var TYPEOF = "object";
|
||||
|
||||
var TIME = 0;
|
||||
var UTC_YEAR = 1;
|
||||
var UTC_MONTH = 2;
|
||||
var UTC_DATE = 3;
|
||||
var UTC_DAY = 4;
|
||||
var UTC_HOURS = 5;
|
||||
var UTC_MINUTES = 6;
|
||||
var UTC_SECONDS = 7;
|
||||
var UTC_MS = 8;
|
||||
|
||||
var YEAR = 9;
|
||||
var MONTH = 10;
|
||||
var DATE = 11;
|
||||
var DAY = 12;
|
||||
var HOURS = 13;
|
||||
var MINUTES = 14;
|
||||
var SECONDS = 15;
|
||||
var MS = 16;
|
||||
|
||||
|
||||
// for TCMS, the testcases array must be global.
|
||||
var tc= 0;
|
||||
var TITLE = "Date constructor: new Date( value )";
|
||||
var SECTION = "15.9.3.8";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
|
||||
writeHeaderToLog( SECTION +" " + TITLE );
|
||||
|
||||
testcases = new Array();
|
||||
getTestCases();
|
||||
|
||||
// all tests must call a function that returns a boolean value
|
||||
test();
|
||||
|
||||
function getTestCases( ) {
|
||||
var TZ_ADJUST = -TZ_DIFF * msPerHour;
|
||||
|
||||
// Dates around Feb 29, 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerDay;
|
||||
var PST_FEB_29_2000 = UTC_FEB_29_2000 + TZ_ADJUST;
|
||||
|
||||
addNewTestCase( new Date(UTC_FEB_29_2000),
|
||||
"new Date("+UTC_FEB_29_2000+")",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(PST_FEB_29_2000),
|
||||
"new Date("+PST_FEB_29_2000+")",
|
||||
[PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(UTC_FEB_29_2000)).toString() ),
|
||||
"new Date(\""+(new Date(UTC_FEB_29_2000)).toString()+"\")",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_FEB_29_2000)).toString() ),
|
||||
"new Date(\""+(new Date(PST_FEB_29_2000)).toString()+"\")",
|
||||
[PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
|
||||
|
||||
addNewTestCase( new Date( (new Date(UTC_FEB_29_2000)).toGMTString() ),
|
||||
"new Date(\""+(new Date(UTC_FEB_29_2000)).toGMTString()+"\")",
|
||||
[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_FEB_29_2000)).toGMTString() ),
|
||||
"new Date(\""+(new Date(PST_FEB_29_2000)).toGMTString()+"\")",
|
||||
[PST_FEB_29_2000,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
|
||||
/*
|
||||
// Dates around 1900
|
||||
|
||||
var PST_1900 = TIME_1900 + 8*msPerHour;
|
||||
|
||||
addNewTestCase( new Date( TIME_1900 ),
|
||||
"new Date("+TIME_1900+")",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(PST_1900),
|
||||
"new Date("+PST_1900+")",
|
||||
[ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_1900)).toString() ),
|
||||
"new Date(\""+(new Date(TIME_1900)).toString()+"\")",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_1900)).toString() ),
|
||||
"new Date(\""+(new Date(PST_1900 )).toString()+"\")",
|
||||
[ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_1900)).toUTCString() ),
|
||||
"new Date(\""+(new Date(TIME_1900)).toUTCString()+"\")",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_1900)).toUTCString() ),
|
||||
"new Date(\""+(new Date(PST_1900 )).toUTCString()+"\")",
|
||||
[ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
// addNewTestCase( "new Date(\""+(new Date(TIME_1900)).toLocaleString()+"\")", [TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
// addNewTestCase( "new Date(\""+(new Date(PST_1900 )).toLocaleString()+"\")", [ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
*/
|
||||
/*
|
||||
This test case is incorrect. Need to fix the DaylightSavings functions in
|
||||
shell.js for this to work properly.
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
addNewTestCase( new Date(DST_START_1998-1),
|
||||
"new Date("+(DST_START_1998-1)+")",
|
||||
[DST_START_1998-1,1998,3,5,0,9,59,59,999,1998,3,5,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(DST_START_1998),
|
||||
"new Date("+DST_START_1998+")",
|
||||
[DST_START_1998,1998,3,5,0,10,0,0,0,1998,3,5,0,3,0,0,0]);
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addNewTestCase ( new Date(DST_END_1998-1),
|
||||
"new Date("+(DST_END_1998-1)+")",
|
||||
[DST_END_1998-1,1998,9,25,0,8,59,59,999,1998,9,25,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase ( new Date(DST_END_1998),
|
||||
"new Date("+DST_END_1998+")",
|
||||
[DST_END_1998,1998,9,25,0,9,0,0,0,1998,9,25,0,1,0,0,0] );
|
||||
*/
|
||||
}
|
||||
|
||||
function addNewTestCase( DateCase, DateString, ResultArray ) {
|
||||
DateCase = DateCase;
|
||||
|
||||
item = testcases.length;
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME], DateCase.getTime() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME], DateCase.valueOf() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", ResultArray[UTC_YEAR], DateCase.getUTCFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", ResultArray[UTC_MONTH], DateCase.getUTCMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", ResultArray[UTC_DATE], DateCase.getUTCDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", ResultArray[UTC_DAY], DateCase.getUTCDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCHours()", ResultArray[UTC_HOURS], DateCase.getUTCHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMinutes()", ResultArray[UTC_MINUTES],DateCase.getUTCMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", ResultArray[UTC_MS], DateCase.getUTCMilliseconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", ResultArray[YEAR], DateCase.getFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", ResultArray[MONTH], DateCase.getMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDate()", ResultArray[DATE], DateCase.getDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDay()", ResultArray[DAY], DateCase.getDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getHours()", ResultArray[HOURS], DateCase.getHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", ResultArray[MINUTES], DateCase.getMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", ResultArray[SECONDS], DateCase.getSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", ResultArray[MS], DateCase.getMilliseconds() );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for( tc = 0; tc < testcases.length; tc++ ) {
|
||||
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = " +
|
||||
testcases[tc].actual );
|
||||
}
|
||||
stopTest();
|
||||
|
||||
// all tests must return a boolean value
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,184 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.3.8.js
|
||||
ECMA Section: 15.9.3.8 The Date Constructor
|
||||
new Date( value )
|
||||
Description: The [[Prototype]] property of the newly constructed
|
||||
object is set to the original Date prototype object,
|
||||
the one that is the initial valiue of Date.prototype.
|
||||
|
||||
The [[Class]] property of the newly constructed object is
|
||||
set to "Date".
|
||||
|
||||
The [[Value]] property of the newly constructed object is
|
||||
set as follows:
|
||||
|
||||
1. Call ToPrimitive(value)
|
||||
2. If Type( Result(1) ) is String, then go to step 5.
|
||||
3. Let V be ToNumber( Result(1) ).
|
||||
4. Set the [[Value]] property of the newly constructed
|
||||
object to TimeClip(V) and return.
|
||||
5. Parse Result(1) as a date, in exactly the same manner
|
||||
as for the parse method. Let V be the time value for
|
||||
this date.
|
||||
6. Go to step 4.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 28 october 1997
|
||||
Version: 9706
|
||||
|
||||
*/
|
||||
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var SECTION = "15.9.3.8";
|
||||
var TYPEOF = "object";
|
||||
|
||||
var TIME = 0;
|
||||
var UTC_YEAR = 1;
|
||||
var UTC_MONTH = 2;
|
||||
var UTC_DATE = 3;
|
||||
var UTC_DAY = 4;
|
||||
var UTC_HOURS = 5;
|
||||
var UTC_MINUTES = 6;
|
||||
var UTC_SECONDS = 7;
|
||||
var UTC_MS = 8;
|
||||
|
||||
var YEAR = 9;
|
||||
var MONTH = 10;
|
||||
var DATE = 11;
|
||||
var DAY = 12;
|
||||
var HOURS = 13;
|
||||
var MINUTES = 14;
|
||||
var SECONDS = 15;
|
||||
var MS = 16;
|
||||
|
||||
|
||||
// for TCMS, the testcases array must be global.
|
||||
var tc= 0;
|
||||
var TITLE = "Date constructor: new Date( value )";
|
||||
var SECTION = "15.9.3.8";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
|
||||
writeHeaderToLog( SECTION +" " + TITLE );
|
||||
|
||||
testcases = new Array();
|
||||
getTestCases();
|
||||
|
||||
// all tests must call a function that returns a boolean value
|
||||
test();
|
||||
|
||||
function getTestCases( ) {
|
||||
var TZ_ADJUST = -TZ_DIFF * msPerHour;
|
||||
|
||||
// Dates around 1900
|
||||
|
||||
var PST_1900 = TIME_1900 + 8*msPerHour;
|
||||
|
||||
addNewTestCase( new Date( TIME_1900 ),
|
||||
"new Date("+TIME_1900+")",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(PST_1900),
|
||||
"new Date("+PST_1900+")",
|
||||
[ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_1900)).toString() ),
|
||||
"new Date(\""+(new Date(TIME_1900)).toString()+"\")",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_1900)).toString() ),
|
||||
"new Date(\""+(new Date(PST_1900 )).toString()+"\")",
|
||||
[ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(TIME_1900)).toUTCString() ),
|
||||
"new Date(\""+(new Date(TIME_1900)).toUTCString()+"\")",
|
||||
[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date( (new Date(PST_1900)).toUTCString() ),
|
||||
"new Date(\""+(new Date(PST_1900 )).toUTCString()+"\")",
|
||||
[ PST_1900,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
|
||||
/*
|
||||
This test case is incorrect. Need to fix the DaylightSavings functions in
|
||||
shell.js for this to work properly.
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
addNewTestCase( new Date(DST_START_1998-1),
|
||||
"new Date("+(DST_START_1998-1)+")",
|
||||
[DST_START_1998-1,1998,3,5,0,9,59,59,999,1998,3,5,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(DST_START_1998),
|
||||
"new Date("+DST_START_1998+")",
|
||||
[DST_START_1998,1998,3,5,0,10,0,0,0,1998,3,5,0,3,0,0,0]);
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addNewTestCase ( new Date(DST_END_1998-1),
|
||||
"new Date("+(DST_END_1998-1)+")",
|
||||
[DST_END_1998-1,1998,9,25,0,8,59,59,999,1998,9,25,0,1,59,59,999] );
|
||||
|
||||
addNewTestCase ( new Date(DST_END_1998),
|
||||
"new Date("+DST_END_1998+")",
|
||||
[DST_END_1998,1998,9,25,0,9,0,0,0,1998,9,25,0,1,0,0,0] );
|
||||
*/
|
||||
}
|
||||
|
||||
function addNewTestCase( DateCase, DateString, ResultArray ) {
|
||||
DateCase = DateCase;
|
||||
|
||||
item = testcases.length;
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME], DateCase.getTime() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME], DateCase.valueOf() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", ResultArray[UTC_YEAR], DateCase.getUTCFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", ResultArray[UTC_MONTH], DateCase.getUTCMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", ResultArray[UTC_DATE], DateCase.getUTCDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", ResultArray[UTC_DAY], DateCase.getUTCDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCHours()", ResultArray[UTC_HOURS], DateCase.getUTCHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMinutes()", ResultArray[UTC_MINUTES],DateCase.getUTCMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", ResultArray[UTC_MS], DateCase.getUTCMilliseconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", ResultArray[YEAR], DateCase.getFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", ResultArray[MONTH], DateCase.getMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDate()", ResultArray[DATE], DateCase.getDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDay()", ResultArray[DAY], DateCase.getDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getHours()", ResultArray[HOURS], DateCase.getHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", ResultArray[MINUTES], DateCase.getMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", ResultArray[SECONDS], DateCase.getSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", ResultArray[MS], DateCase.getMilliseconds() );
|
||||
}
|
||||
|
||||
function test() {
|
||||
for( tc = 0; tc < testcases.length; tc++ ) {
|
||||
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = " +
|
||||
testcases[tc].actual );
|
||||
}
|
||||
stopTest();
|
||||
|
||||
// all tests must return a boolean value
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
/*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||
* compliance with the NPL. You may obtain a copy of the NPL at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
* for the specific language governing rights and limitations under the
|
||||
* NPL.
|
||||
*
|
||||
* The Initial Developer of this code under the NPL is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
|
||||
/**
|
||||
* File Name:
|
||||
* Reference: http://bugzilla.mozilla.org/show_bug.cgi?id=4088
|
||||
* Description: Date parsing gets 12:30 AM wrong.
|
||||
* New behavior:
|
||||
* js> d = new Date('1/1/1999 13:30 AM')
|
||||
* Invalid Date
|
||||
* js> d = new Date('1/1/1999 13:30 PM')
|
||||
* Invalid Date
|
||||
* js> d = new Date('1/1/1999 12:30 AM')
|
||||
* Fri Jan 01 00:30:00 GMT-0800 (PST) 1999
|
||||
* js> d = new Date('1/1/1999 12:30 PM')
|
||||
* Fri Jan 01 12:30:00 GMT-0800 (PST) 1999
|
||||
* Author: christine@netscape.com
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.4.2-1"; // provide a document reference (ie, ECMA section)
|
||||
var VERSION = "ECMA"; // Version of JavaScript or ECMA
|
||||
var TITLE = "Regression Test for Date.parse"; // Provide ECMA section title or a description
|
||||
var BUGNUMBER = "http://bugzilla.mozilla.org/show_bug.cgi?id=4088"; // Provide URL to bugsplat or bugzilla report
|
||||
|
||||
startTest(); // leave this alone
|
||||
|
||||
AddTestCase( "new Date('1/1/1999 12:30 AM').toString()",
|
||||
new Date(1999,0,1,0,30).toString(),
|
||||
new Date('1/1/1999 12:30 AM').toString() );
|
||||
|
||||
AddTestCase( "new Date('1/1/1999 12:30 PM').toString()",
|
||||
new Date( 1999,0,1,12,30 ).toString(),
|
||||
new Date('1/1/1999 12:30 PM').toString() );
|
||||
|
||||
AddTestCase( "new Date('1/1/1999 13:30 AM')",
|
||||
"Invalid Date",
|
||||
new Date('1/1/1999 13:30 AM').toString() );
|
||||
|
||||
|
||||
AddTestCase( "new Date('1/1/1999 13:30 PM')",
|
||||
"Invalid Date",
|
||||
new Date('1/1/1999 13:30 PM').toString() );
|
||||
|
||||
test(); // leave this alone. this executes the test cases and
|
||||
// displays results.
|
||||
@@ -1,210 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.4.2.js
|
||||
ECMA Section: 15.9.4.2 Date.parse()
|
||||
Description: The parse() function applies the to ToString() operator
|
||||
to its argument and interprets the resulting string as
|
||||
a date. It returns a number, the UTC time value
|
||||
corresponding to the date.
|
||||
|
||||
The string may be interpreted as a local time, a UTC
|
||||
time, or a time in some other time zone, depending on
|
||||
the contents of the string.
|
||||
|
||||
(need to test strings containing stuff with the time
|
||||
zone specified, and verify that parse() returns the
|
||||
correct GMT time)
|
||||
|
||||
so for any Date object x, all of these things should
|
||||
be equal:
|
||||
|
||||
value tested in function:
|
||||
x.valueOf() test_value()
|
||||
Date.parse(x.toString()) test_tostring()
|
||||
Date.parse(x.toGMTString()) test_togmt()
|
||||
|
||||
Date.parse(x.toLocaleString()) is not required to
|
||||
produce the same number value as the preceeding three
|
||||
expressions. in general the value produced by
|
||||
Date.parse is implementation dependent when given any
|
||||
string value that could not be produced in that
|
||||
implementation by the toString or toGMTString method.
|
||||
|
||||
value tested in function:
|
||||
Date.parse( x.toLocaleString()) test_tolocale()
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 10 july 1997
|
||||
|
||||
*/
|
||||
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var SECTION = "15.9.4.2";
|
||||
var TITLE = "Date.parse()";
|
||||
|
||||
var TIME = 0;
|
||||
var UTC_YEAR = 1;
|
||||
var UTC_MONTH = 2;
|
||||
var UTC_DATE = 3;
|
||||
var UTC_DAY = 4;
|
||||
var UTC_HOURS = 5;
|
||||
var UTC_MINUTES = 6;
|
||||
var UTC_SECONDS = 7;
|
||||
var UTC_MS = 8;
|
||||
|
||||
var YEAR = 9;
|
||||
var MONTH = 10;
|
||||
var DATE = 11;
|
||||
var DAY = 12;
|
||||
var HOURS = 13;
|
||||
var MINUTES = 14;
|
||||
var SECONDS = 15;
|
||||
var MS = 16;
|
||||
var TYPEOF = "object";
|
||||
|
||||
// for TCMS, the testcases array must be global.
|
||||
writeHeaderToLog("15.9.4.2 Date.parse()" );
|
||||
var tc= 0;
|
||||
testcases = new Array();
|
||||
getTestCases();
|
||||
|
||||
// all tests must call a function that returns an array of TestCase objects.
|
||||
test();
|
||||
|
||||
function getTestCases() {
|
||||
|
||||
// Dates around 1970
|
||||
|
||||
addNewTestCase( new Date(0),
|
||||
"new Date(0)",
|
||||
[0,1970,0,1,4,0,0,0,0,1969,11,31,3,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(-1),
|
||||
"new Date(-1)",
|
||||
[-1,1969,11,31,3,23,59,59,999,1969,11,31,3,15,59,59,999] );
|
||||
addNewTestCase( new Date(28799999),
|
||||
"new Date(28799999)",
|
||||
[28799999,1970,0,1,4,7,59,59,999,1969,11,31,3,23,59,59,999] );
|
||||
addNewTestCase( new Date(28800000),
|
||||
"new Date(28800000)",
|
||||
[28800000,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
|
||||
|
||||
// Dates around 2000
|
||||
|
||||
addNewTestCase( new Date(946684799999),
|
||||
"new Date(946684799999)",
|
||||
[946684799999,1999,11,31,5,23,59,59,999,1999,11,31,5,15,59,59,999] );
|
||||
addNewTestCase( new Date(946713599999),
|
||||
"new Date(946713599999)",
|
||||
[946713599999,2000,0,1,6,7,59,59,999,1999,11,31,5,23,59,59,999] );
|
||||
addNewTestCase( new Date(946684800000),
|
||||
"new Date(946684800000)",
|
||||
[946684800000,2000,0,1,6,0,0,0,0,1999,11,31,5, 16,0,0,0] );
|
||||
addNewTestCase( new Date(946713600000),
|
||||
"new Date(946713600000)",
|
||||
[946713600000,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
|
||||
|
||||
// Dates around 1900
|
||||
|
||||
addNewTestCase( new Date(-2208988800000),
|
||||
"new Date(-2208988800000)",
|
||||
[-2208988800000,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
|
||||
|
||||
addNewTestCase( new Date(-2208988800001),
|
||||
"new Date(-2208988800001)",
|
||||
[-2208988800001,1899,11,31,0,23,59,59,999,1899,11,31,0,15,59,59,999] );
|
||||
|
||||
addNewTestCase( new Date(-2208960000001),
|
||||
"new Date(-2208960000001)",
|
||||
[-2208960000001,1900,0,1,1,7,59,59,0,1899,11,31,0,23,59,59,999] );
|
||||
addNewTestCase( new Date(-2208960000000),
|
||||
"new Date(-2208960000000)",
|
||||
[-2208960000000,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
|
||||
addNewTestCase( new Date(-2208959999999),
|
||||
"new Date(-2208959999999)",
|
||||
[-2208959999999,1900,0,1,1,8,0,0,1,1900,0,1,1,0,0,0,1] );
|
||||
|
||||
// Dates around Feb 29, 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerDay;
|
||||
var PST_FEB_29_2000 = UTC_FEB_29_2000 + 8*msPerHour;
|
||||
addNewTestCase( new Date(UTC_FEB_29_2000),
|
||||
"new Date(" + UTC_FEB_29_2000 +")",
|
||||
[UTC_FEB_29_2000,2000,0,1,6,0,0,0,0,1999,11,31,5,16,0,0,0] );
|
||||
addNewTestCase( new Date(PST_FEB_29_2000),
|
||||
"new Date(" + PST_FEB_29_2000 +")",
|
||||
[PST_FEB_29_2000,2000,0,1,6,8.0,0,0,2000,0,1,6,0,0,0,0]);
|
||||
|
||||
// Dates around Jan 1 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000) + TimeInYear(2001) +
|
||||
TimeInYear(2002) + TimeInYear(2003) + TimeInYear(2004);
|
||||
var PST_JAN_1_2005 = UTC_JAN_1_2005 + 8*msPerHour;
|
||||
|
||||
addNewTestCase( new Date(UTC_JAN_1_2005),
|
||||
"new Date("+ UTC_JAN_1_2005 +")",
|
||||
[UTC_JAN_1_2005,2005,0,1,6,0,0,0,0,2004,11,31,5,16,0,0,0] );
|
||||
addNewTestCase( new Date(PST_JAN_1_2005),
|
||||
"new Date("+ PST_JAN_1_2005 +")",
|
||||
[PST_JAN_1_2005,2005,0,1,6,8,0,0,0,2005,0,1,6,0,0,0,0] );
|
||||
|
||||
}
|
||||
function addNewTestCase( DateCase, DateString, ResultArray ) {
|
||||
DateCase = DateCase;
|
||||
|
||||
item = testcases.length;
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME], DateCase.getTime() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME], DateCase.valueOf() );
|
||||
testcases[item++] = new TestCase( SECTION, "Date.parse(" + DateCase.toString() +")", Math.floor(ResultArray[TIME]/1000)*1000, Date.parse(DateCase.toString()) );
|
||||
testcases[item++] = new TestCase( SECTION, "Date.parse(" + DateCase.toGMTString() +")", Math.floor(ResultArray[TIME]/1000)*1000, Date.parse(DateCase.toGMTString()) );
|
||||
/*
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", ResultArray[UTC_YEAR], DateCase.getUTCFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", ResultArray[UTC_MONTH], DateCase.getUTCMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", ResultArray[UTC_DATE], DateCase.getUTCDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", ResultArray[UTC_DAY], DateCase.getUTCDay() z inutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
|
||||
// testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", ResultArray[UTC_MS], DateCase.getUTCMilliseconds() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", ResultArray[YEAR], DateCase.getFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", ResultArray[MONTH], DateCase.getMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDate()", ResultArray[DATE], DateCase.getDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDay()", ResultArray[DAY], DateCase.getDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getHours()", ResultArray[HOURS], DateCase.getHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", ResultArray[MINUTES], DateCase.getMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", ResultArray[SECONDS], DateCase.getSeconds() );
|
||||
// testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", ResultArray[MS], DateCase.getMilliseconds() );
|
||||
*/
|
||||
}
|
||||
function test() {
|
||||
for( tc = 0; tc < testcases.length; tc++ ) {
|
||||
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = " +
|
||||
testcases[tc].actual );
|
||||
}
|
||||
stopTest();
|
||||
|
||||
// all tests must return an array of TestCase objects
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,207 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
var testcases = new Array();
|
||||
var SECTION = "15.9.4.3";
|
||||
var TITLE = "Date.UTC( year, month, date, hours, minutes, seconds, ms )";
|
||||
var TZ_DIFF = 8;
|
||||
|
||||
getTestCases();
|
||||
test();
|
||||
|
||||
function MyDate() {
|
||||
this.year = 0;
|
||||
this.month = 0;
|
||||
this.date = 0;
|
||||
this.hours = 0;
|
||||
this.minutes = 0;
|
||||
this.seconds = 0;
|
||||
this.ms = 0;
|
||||
}
|
||||
|
||||
function utc( year, month, date, hours, minutes, seconds, ms ) {
|
||||
d = new MyDate();
|
||||
d.year = Number(year);
|
||||
|
||||
if (month)
|
||||
d.month = Number(month);
|
||||
if (date)
|
||||
d.date = Number(date);
|
||||
if (hours)
|
||||
d.hours = Number(hours);
|
||||
if (minutes)
|
||||
d.minutes = Number(minutes);
|
||||
if (seconds)
|
||||
d.seconds = Number(seconds);
|
||||
if (ms)
|
||||
d.ms = Number(ms);
|
||||
|
||||
if ( isNaN(d.year) && 0 <= ToInteger(d.year) && d.year <= 99 ) {
|
||||
d.year = 1900 + ToInteger(d.year);
|
||||
}
|
||||
|
||||
if (isNaN(month) || isNaN(year) || isNaN(date) || isNaN(hours) ||
|
||||
isNaN(minutes) || isNaN(seconds) || isNaN(ms) ) {
|
||||
d.year = Number.NaN;
|
||||
d.month = Number.NaN;
|
||||
d.date = Number.NaN;
|
||||
d.hours = Number.NaN;
|
||||
d.minutes = Number.NaN;
|
||||
d.seconds = Number.NaN;
|
||||
d.ms = Number.NaN;
|
||||
d.value = Number.NaN;
|
||||
d.time = Number.NaN;
|
||||
d.day =Number.NaN;
|
||||
return d;
|
||||
}
|
||||
|
||||
d.day = MakeDay( d.year, d.month, d.date );
|
||||
d.time = MakeTime( d.hours, d.minutes, d.seconds, d.ms );
|
||||
d.value = (TimeClip( MakeDate(d.day,d.time)));
|
||||
|
||||
return d;
|
||||
}
|
||||
|
||||
function UTCTime( t ) {
|
||||
sign = ( t < 0 ) ? -1 : 1;
|
||||
return ( (t +(TZ_DIFF*msPerHour)) );
|
||||
}
|
||||
|
||||
function getTestCases() {
|
||||
|
||||
// Dates around 1970
|
||||
|
||||
addNewTestCase( Date.UTC( 1970,0,1,0,0,0,0),
|
||||
"Date.UTC( 1970,0,1,0,0,0,0)",
|
||||
utc(1970,0,1,0,0,0,0) );
|
||||
|
||||
addNewTestCase( Date.UTC( 1969,11,31,23,59,59,999),
|
||||
"Date.UTC( 1969,11,31,23,59,59,999)",
|
||||
utc(1969,11,31,23,59,59,999) );
|
||||
addNewTestCase( Date.UTC( 1972,1,29,23,59,59,999),
|
||||
"Date.UTC( 1972,1,29,23,59,59,999)",
|
||||
utc(1972,1,29,23,59,59,999) );
|
||||
addNewTestCase( Date.UTC( 1972,2,1,23,59,59,999),
|
||||
"Date.UTC( 1972,2,1,23,59,59,999)",
|
||||
utc(1972,2,1,23,59,59,999) );
|
||||
addNewTestCase( Date.UTC( 1968,1,29,23,59,59,999),
|
||||
"Date.UTC( 1968,1,29,23,59,59,999)",
|
||||
utc(1968,1,29,23,59,59,999) );
|
||||
addNewTestCase( Date.UTC( 1968,2,1,23,59,59,999),
|
||||
"Date.UTC( 1968,2,1,23,59,59,999)",
|
||||
utc(1968,2,1,23,59,59,999) );
|
||||
addNewTestCase( Date.UTC( 1969,0,1,0,0,0,0),
|
||||
"Date.UTC( 1969,0,1,0,0,0,0)",
|
||||
utc(1969,0,1,0,0,0,0) );
|
||||
addNewTestCase( Date.UTC( 1969,11,31,23,59,59,1000),
|
||||
"Date.UTC( 1969,11,31,23,59,59,1000)",
|
||||
utc(1970,0,1,0,0,0,0) );
|
||||
addNewTestCase( Date.UTC( 1969,Number.NaN,31,23,59,59,999),
|
||||
"Date.UTC( 1969,Number.NaN,31,23,59,59,999)",
|
||||
utc(1969,Number.NaN,31,23,59,59,999) );
|
||||
|
||||
// Dates around 2000
|
||||
|
||||
addNewTestCase( Date.UTC( 1999,11,31,23,59,59,999),
|
||||
"Date.UTC( 1999,11,31,23,59,59,999)",
|
||||
utc(1999,11,31,23,59,59,999) );
|
||||
addNewTestCase( Date.UTC( 2000,0,1,0,0,0,0),
|
||||
"Date.UTC( 2000,0,1,0,0,0,0)",
|
||||
utc(2000,0,1,0,0,0,0) );
|
||||
|
||||
// Dates around 1900
|
||||
addNewTestCase( Date.UTC( 1899,11,31,23,59,59,999),
|
||||
"Date.UTC( 1899,11,31,23,59,59,999)",
|
||||
utc(1899,11,31,23,59,59,999) );
|
||||
addNewTestCase( Date.UTC( 1900,0,1,0,0,0,0),
|
||||
"Date.UTC( 1900,0,1,0,0,0,0)",
|
||||
utc(1900,0,1,0,0,0,0) );
|
||||
addNewTestCase( Date.UTC( 1973,0,1,0,0,0,0),
|
||||
"Date.UTC( 1973,0,1,0,0,0,0)",
|
||||
utc(1973,0,1,0,0,0,0) );
|
||||
addNewTestCase( Date.UTC( 1776,6,4,12,36,13,111),
|
||||
"Date.UTC( 1776,6,4,12,36,13,111)",
|
||||
utc(1776,6,4,12,36,13,111) );
|
||||
addNewTestCase( Date.UTC( 2525,9,18,15,30,1,123),
|
||||
"Date.UTC( 2525,9,18,15,30,1,123)",
|
||||
utc(2525,9,18,15,30,1,123) );
|
||||
|
||||
// Dates around 29 Feb 2000
|
||||
|
||||
addNewTestCase( Date.UTC( 2000,1,29,0,0,0,0 ),
|
||||
"Date.UTC( 2000,1,29,0,0,0,0 )",
|
||||
utc(2000,1,29,0,0,0,0) );
|
||||
addNewTestCase( Date.UTC( 2000,1,29,8,0,0,0 ),
|
||||
"Date.UTC( 2000,1,29,8,0,0,0 )",
|
||||
utc(2000,1,29,8,0,0,0) );
|
||||
|
||||
// Dates around 1 Jan 2005
|
||||
|
||||
addNewTestCase( Date.UTC( 2005,0,1,0,0,0,0 ),
|
||||
"Date.UTC( 2005,0,1,0,0,0,0 )",
|
||||
utc(2005,0,1,0,0,0,0) );
|
||||
addNewTestCase( Date.UTC( 2004,11,31,16,0,0,0 ),
|
||||
"Date.UTC( 2004,11,31,16,0,0,0 )",
|
||||
utc(2004,11,31,16,0,0,0) );
|
||||
}
|
||||
|
||||
function addNewTestCase( DateCase, DateString, ExpectDate) {
|
||||
DateCase = DateCase;
|
||||
|
||||
item = testcases.length;
|
||||
|
||||
// fixed_year = ( ExpectDate.year >=1900 || ExpectDate.year < 2000 ) ? ExpectDate.year - 1900 : ExpectDate.year;
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString, ExpectDate.value, DateCase );
|
||||
testcases[item++] = new TestCase( SECTION, DateString, ExpectDate.value, DateCase );
|
||||
/*
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", ExpectDate.year, DateCase.getUTCFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", ExpectDate.month, DateCase.getUTCMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", ExpectDate.date, DateCase.getUTCDate() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", ExpectDate.day, DateCase.getUTCDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCHours()", ExpectDate.hours, DateCase.getUTCHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMinutes()", ExpectDate.minutes,DateCase.getUTCMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", ExpectDate.seconds,DateCase.getUTCSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", ExpectDate.ms, DateCase.getUTCMilliseconds() );
|
||||
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", ExpectDate.year, DateCase.getFullYear() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", ExpectDate.month, DateCase.getMonth() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getDate()", ExpectDate.date, DateCase.getDate() );
|
||||
// testcases[item++] = new TestCase( SECTION, DateString+".getDay()", ExpectDate.day, DateCase.getDay() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getHours()", ExpectDate.hours, DateCase.getHours() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", ExpectDate.minutes, DateCase.getMinutes() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", ExpectDate.seconds, DateCase.getSeconds() );
|
||||
testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", ExpectDate.ms, DateCase.getMilliseconds() );
|
||||
*/
|
||||
}
|
||||
function test() {
|
||||
for( tc=0; tc < testcases.length; tc++ ) {
|
||||
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = " +
|
||||
testcases[tc].actual );
|
||||
}
|
||||
|
||||
stopTest();
|
||||
return testcases;
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.1.js
|
||||
ECMA Section: 15.9.5.1 Date.prototype.constructor
|
||||
Description:
|
||||
The initial value of Date.prototype.constructor is the built-in Date
|
||||
constructor.
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.1";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.constructor";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"Date.prototype.constructor == Date",
|
||||
true,
|
||||
Date.prototype.constructor == Date );
|
||||
test();
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,112 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.10.js
|
||||
ECMA Section: 15.9.5.10
|
||||
Description: Date.prototype.getDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
3.Return DateFromTime(LocalTime(t)).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.10";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// get the current time
|
||||
var now = (new Date()).valueOf();
|
||||
|
||||
// calculate time for year 0
|
||||
for ( var time = 0, year = 1969; year >= 0; year-- ) {
|
||||
time -= TimeInYear(year);
|
||||
}
|
||||
// get time for 29 feb 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerHour;
|
||||
|
||||
// get time for 1 jan 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000)+TimeInYear(2001)+
|
||||
TimeInYear(2002)+TimeInYear(2003)+TimeInYear(2004);
|
||||
|
||||
// some daylight savings time cases
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addTestCase( now );
|
||||
/*
|
||||
addTestCase( time );
|
||||
addTestCase( TIME_1970 );
|
||||
addTestCase( TIME_1900 );
|
||||
addTestCase( TIME_2000 );
|
||||
addTestCase( UTC_FEB_29_2000 );
|
||||
addTestCase( UTC_JAN_1_2005 );
|
||||
addTestCase( DST_START_1998 );
|
||||
addTestCase( DST_START_1998-1 );
|
||||
addTestCase( DST_START_1998+1 );
|
||||
addTestCase( DST_END_1998 );
|
||||
addTestCase( DST_END_1998-1 );
|
||||
addTestCase( DST_END_1998+1 );
|
||||
*/
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date(NaN)).getDate()",
|
||||
NaN,
|
||||
(new Date(NaN)).getDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"Date.prototype.getDate.length",
|
||||
0,
|
||||
Date.prototype.getDate.length );
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( d = 0; d < TimeInMonth(MonthFromTime(t)); d+= msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getDate()",
|
||||
DateFromTime(LocalTime(t)),
|
||||
(new Date(t)).getDate() );
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,103 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.10.js
|
||||
ECMA Section: 15.9.5.10
|
||||
Description: Date.prototype.getDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
3.Return DateFromTime(LocalTime(t)).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.10";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// get the current time
|
||||
var now = (new Date()).valueOf();
|
||||
|
||||
// calculate time for year 0
|
||||
for ( var time = 0, year = 1969; year >= 0; year-- ) {
|
||||
time -= TimeInYear(year);
|
||||
}
|
||||
// get time for 29 feb 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerHour;
|
||||
|
||||
// get time for 1 jan 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000)+TimeInYear(2001)+
|
||||
TimeInYear(2002)+TimeInYear(2003)+TimeInYear(2004);
|
||||
|
||||
// some daylight savings time cases
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addTestCase( DST_START_1998+1 );
|
||||
/*
|
||||
addTestCase( DST_END_1998 );
|
||||
addTestCase( DST_END_1998-1 );
|
||||
addTestCase( DST_END_1998+1 );
|
||||
*/
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date(NaN)).getDate()",
|
||||
NaN,
|
||||
(new Date(NaN)).getDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"Date.prototype.getDate.length",
|
||||
0,
|
||||
Date.prototype.getDate.length );
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( d = 0; d < TimeInMonth(MonthFromTime(t)); d+= msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getDate()",
|
||||
DateFromTime(LocalTime(t)),
|
||||
(new Date(t)).getDate() );
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,102 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.10.js
|
||||
ECMA Section: 15.9.5.10
|
||||
Description: Date.prototype.getDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
3.Return DateFromTime(LocalTime(t)).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.10";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// get the current time
|
||||
var now = (new Date()).valueOf();
|
||||
|
||||
// calculate time for year 0
|
||||
for ( var time = 0, year = 1969; year >= 0; year-- ) {
|
||||
time -= TimeInYear(year);
|
||||
}
|
||||
// get time for 29 feb 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerHour;
|
||||
|
||||
// get time for 1 jan 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000)+TimeInYear(2001)+
|
||||
TimeInYear(2002)+TimeInYear(2003)+TimeInYear(2004);
|
||||
|
||||
// some daylight savings time cases
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addTestCase( DST_END_1998 );
|
||||
/*
|
||||
addTestCase( DST_END_1998-1 );
|
||||
addTestCase( DST_END_1998+1 );
|
||||
*/
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date(NaN)).getDate()",
|
||||
NaN,
|
||||
(new Date(NaN)).getDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"Date.prototype.getDate.length",
|
||||
0,
|
||||
Date.prototype.getDate.length );
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( d = 0; d < TimeInMonth(MonthFromTime(t)); d+= msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getDate()",
|
||||
DateFromTime(LocalTime(t)),
|
||||
(new Date(t)).getDate() );
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,101 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.10.js
|
||||
ECMA Section: 15.9.5.10
|
||||
Description: Date.prototype.getDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
3.Return DateFromTime(LocalTime(t)).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.10";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// get the current time
|
||||
var now = (new Date()).valueOf();
|
||||
|
||||
// calculate time for year 0
|
||||
for ( var time = 0, year = 1969; year >= 0; year-- ) {
|
||||
time -= TimeInYear(year);
|
||||
}
|
||||
// get time for 29 feb 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerHour;
|
||||
|
||||
// get time for 1 jan 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000)+TimeInYear(2001)+
|
||||
TimeInYear(2002)+TimeInYear(2003)+TimeInYear(2004);
|
||||
|
||||
// some daylight savings time cases
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addTestCase( DST_END_1998-1 );
|
||||
/*
|
||||
addTestCase( DST_END_1998+1 );
|
||||
*/
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date(NaN)).getDate()",
|
||||
NaN,
|
||||
(new Date(NaN)).getDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"Date.prototype.getDate.length",
|
||||
0,
|
||||
Date.prototype.getDate.length );
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( d = 0; d < TimeInMonth(MonthFromTime(t)); d+= msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getDate()",
|
||||
DateFromTime(LocalTime(t)),
|
||||
(new Date(t)).getDate() );
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,98 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.10.js
|
||||
ECMA Section: 15.9.5.10
|
||||
Description: Date.prototype.getDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
3.Return DateFromTime(LocalTime(t)).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.10";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// get the current time
|
||||
var now = (new Date()).valueOf();
|
||||
|
||||
// calculate time for year 0
|
||||
for ( var time = 0, year = 1969; year >= 0; year-- ) {
|
||||
time -= TimeInYear(year);
|
||||
}
|
||||
// get time for 29 feb 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerHour;
|
||||
|
||||
// get time for 1 jan 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000)+TimeInYear(2001)+
|
||||
TimeInYear(2002)+TimeInYear(2003)+TimeInYear(2004);
|
||||
|
||||
// some daylight savings time cases
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addTestCase( DST_END_1998+1 );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date(NaN)).getDate()",
|
||||
NaN,
|
||||
(new Date(NaN)).getDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"Date.prototype.getDate.length",
|
||||
0,
|
||||
Date.prototype.getDate.length );
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( d = 0; d < TimeInMonth(MonthFromTime(t)); d+= msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getDate()",
|
||||
DateFromTime(LocalTime(t)),
|
||||
(new Date(t)).getDate() );
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.10.js
|
||||
ECMA Section: 15.9.5.10
|
||||
Description: Date.prototype.getDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
3.Return DateFromTime(LocalTime(t)).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.10";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// get the current time
|
||||
var now = (new Date()).valueOf();
|
||||
|
||||
// calculate time for year 0
|
||||
for ( var time = 0, year = 1969; year >= 0; year-- ) {
|
||||
time -= TimeInYear(year);
|
||||
}
|
||||
// get time for 29 feb 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerHour;
|
||||
|
||||
// get time for 1 jan 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000)+TimeInYear(2001)+
|
||||
TimeInYear(2002)+TimeInYear(2003)+TimeInYear(2004);
|
||||
|
||||
// some daylight savings time cases
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addTestCase( time );
|
||||
/*
|
||||
addTestCase( TIME_1970 );
|
||||
addTestCase( TIME_1900 );
|
||||
addTestCase( TIME_2000 );
|
||||
addTestCase( UTC_FEB_29_2000 );
|
||||
addTestCase( UTC_JAN_1_2005 );
|
||||
addTestCase( DST_START_1998 );
|
||||
addTestCase( DST_START_1998-1 );
|
||||
addTestCase( DST_START_1998+1 );
|
||||
addTestCase( DST_END_1998 );
|
||||
addTestCase( DST_END_1998-1 );
|
||||
addTestCase( DST_END_1998+1 );
|
||||
*/
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date(NaN)).getDate()",
|
||||
NaN,
|
||||
(new Date(NaN)).getDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"Date.prototype.getDate.length",
|
||||
0,
|
||||
Date.prototype.getDate.length );
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( d = 0; d < TimeInMonth(MonthFromTime(t)); d+= msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getDate()",
|
||||
DateFromTime(LocalTime(t)),
|
||||
(new Date(t)).getDate() );
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,110 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.10.js
|
||||
ECMA Section: 15.9.5.10
|
||||
Description: Date.prototype.getDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
3.Return DateFromTime(LocalTime(t)).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.10";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// get the current time
|
||||
var now = (new Date()).valueOf();
|
||||
|
||||
// calculate time for year 0
|
||||
for ( var time = 0, year = 1969; year >= 0; year-- ) {
|
||||
time -= TimeInYear(year);
|
||||
}
|
||||
// get time for 29 feb 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerHour;
|
||||
|
||||
// get time for 1 jan 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000)+TimeInYear(2001)+
|
||||
TimeInYear(2002)+TimeInYear(2003)+TimeInYear(2004);
|
||||
|
||||
// some daylight savings time cases
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addTestCase( TIME_1970 );
|
||||
/*
|
||||
addTestCase( TIME_1900 );
|
||||
addTestCase( TIME_2000 );
|
||||
addTestCase( UTC_FEB_29_2000 );
|
||||
addTestCase( UTC_JAN_1_2005 );
|
||||
addTestCase( DST_START_1998 );
|
||||
addTestCase( DST_START_1998-1 );
|
||||
addTestCase( DST_START_1998+1 );
|
||||
addTestCase( DST_END_1998 );
|
||||
addTestCase( DST_END_1998-1 );
|
||||
addTestCase( DST_END_1998+1 );
|
||||
*/
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date(NaN)).getDate()",
|
||||
NaN,
|
||||
(new Date(NaN)).getDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"Date.prototype.getDate.length",
|
||||
0,
|
||||
Date.prototype.getDate.length );
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( d = 0; d < TimeInMonth(MonthFromTime(t)); d+= msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getDate()",
|
||||
DateFromTime(LocalTime(t)),
|
||||
(new Date(t)).getDate() );
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,108 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.10.js
|
||||
ECMA Section: 15.9.5.10
|
||||
Description: Date.prototype.getDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
3.Return DateFromTime(LocalTime(t)).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.10";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// get the current time
|
||||
var now = (new Date()).valueOf();
|
||||
|
||||
// calculate time for year 0
|
||||
for ( var time = 0, year = 1969; year >= 0; year-- ) {
|
||||
time -= TimeInYear(year);
|
||||
}
|
||||
// get time for 29 feb 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerHour;
|
||||
|
||||
// get time for 1 jan 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000)+TimeInYear(2001)+
|
||||
TimeInYear(2002)+TimeInYear(2003)+TimeInYear(2004);
|
||||
|
||||
// some daylight savings time cases
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addTestCase( TIME_1900 );
|
||||
/*
|
||||
addTestCase( UTC_FEB_29_2000 );
|
||||
addTestCase( UTC_JAN_1_2005 );
|
||||
addTestCase( DST_START_1998 );
|
||||
addTestCase( DST_START_1998-1 );
|
||||
addTestCase( DST_START_1998+1 );
|
||||
addTestCase( DST_END_1998 );
|
||||
addTestCase( DST_END_1998-1 );
|
||||
addTestCase( DST_END_1998+1 );
|
||||
*/
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date(NaN)).getDate()",
|
||||
NaN,
|
||||
(new Date(NaN)).getDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"Date.prototype.getDate.length",
|
||||
0,
|
||||
Date.prototype.getDate.length );
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( d = 0; d < TimeInMonth(MonthFromTime(t)); d+= msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getDate()",
|
||||
DateFromTime(LocalTime(t)),
|
||||
(new Date(t)).getDate() );
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,108 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.10.js
|
||||
ECMA Section: 15.9.5.10
|
||||
Description: Date.prototype.getDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
3.Return DateFromTime(LocalTime(t)).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.10";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// get the current time
|
||||
var now = (new Date()).valueOf();
|
||||
|
||||
// calculate time for year 0
|
||||
for ( var time = 0, year = 1969; year >= 0; year-- ) {
|
||||
time -= TimeInYear(year);
|
||||
}
|
||||
// get time for 29 feb 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerHour;
|
||||
|
||||
// get time for 1 jan 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000)+TimeInYear(2001)+
|
||||
TimeInYear(2002)+TimeInYear(2003)+TimeInYear(2004);
|
||||
|
||||
// some daylight savings time cases
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addTestCase( TIME_2000 );
|
||||
/*
|
||||
addTestCase( UTC_FEB_29_2000 );
|
||||
addTestCase( UTC_JAN_1_2005 );
|
||||
addTestCase( DST_START_1998 );
|
||||
addTestCase( DST_START_1998-1 );
|
||||
addTestCase( DST_START_1998+1 );
|
||||
addTestCase( DST_END_1998 );
|
||||
addTestCase( DST_END_1998-1 );
|
||||
addTestCase( DST_END_1998+1 );
|
||||
*/
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date(NaN)).getDate()",
|
||||
NaN,
|
||||
(new Date(NaN)).getDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"Date.prototype.getDate.length",
|
||||
0,
|
||||
Date.prototype.getDate.length );
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( d = 0; d < TimeInMonth(MonthFromTime(t)); d+= msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getDate()",
|
||||
DateFromTime(LocalTime(t)),
|
||||
(new Date(t)).getDate() );
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,107 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.10.js
|
||||
ECMA Section: 15.9.5.10
|
||||
Description: Date.prototype.getDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
3.Return DateFromTime(LocalTime(t)).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.10";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// get the current time
|
||||
var now = (new Date()).valueOf();
|
||||
|
||||
// calculate time for year 0
|
||||
for ( var time = 0, year = 1969; year >= 0; year-- ) {
|
||||
time -= TimeInYear(year);
|
||||
}
|
||||
// get time for 29 feb 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerHour;
|
||||
|
||||
// get time for 1 jan 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000)+TimeInYear(2001)+
|
||||
TimeInYear(2002)+TimeInYear(2003)+TimeInYear(2004);
|
||||
|
||||
// some daylight savings time cases
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addTestCase( UTC_FEB_29_2000 );
|
||||
/*
|
||||
addTestCase( UTC_JAN_1_2005 );
|
||||
addTestCase( DST_START_1998 );
|
||||
addTestCase( DST_START_1998-1 );
|
||||
addTestCase( DST_START_1998+1 );
|
||||
addTestCase( DST_END_1998 );
|
||||
addTestCase( DST_END_1998-1 );
|
||||
addTestCase( DST_END_1998+1 );
|
||||
*/
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date(NaN)).getDate()",
|
||||
NaN,
|
||||
(new Date(NaN)).getDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"Date.prototype.getDate.length",
|
||||
0,
|
||||
Date.prototype.getDate.length );
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( d = 0; d < TimeInMonth(MonthFromTime(t)); d+= msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getDate()",
|
||||
DateFromTime(LocalTime(t)),
|
||||
(new Date(t)).getDate() );
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,106 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.10.js
|
||||
ECMA Section: 15.9.5.10
|
||||
Description: Date.prototype.getDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
3.Return DateFromTime(LocalTime(t)).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.10";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// get the current time
|
||||
var now = (new Date()).valueOf();
|
||||
|
||||
// calculate time for year 0
|
||||
for ( var time = 0, year = 1969; year >= 0; year-- ) {
|
||||
time -= TimeInYear(year);
|
||||
}
|
||||
// get time for 29 feb 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerHour;
|
||||
|
||||
// get time for 1 jan 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000)+TimeInYear(2001)+
|
||||
TimeInYear(2002)+TimeInYear(2003)+TimeInYear(2004);
|
||||
|
||||
// some daylight savings time cases
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addTestCase( UTC_JAN_1_2005 );
|
||||
/*
|
||||
addTestCase( DST_START_1998 );
|
||||
addTestCase( DST_START_1998-1 );
|
||||
addTestCase( DST_START_1998+1 );
|
||||
addTestCase( DST_END_1998 );
|
||||
addTestCase( DST_END_1998-1 );
|
||||
addTestCase( DST_END_1998+1 );
|
||||
*/
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date(NaN)).getDate()",
|
||||
NaN,
|
||||
(new Date(NaN)).getDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"Date.prototype.getDate.length",
|
||||
0,
|
||||
Date.prototype.getDate.length );
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( d = 0; d < TimeInMonth(MonthFromTime(t)); d+= msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getDate()",
|
||||
DateFromTime(LocalTime(t)),
|
||||
(new Date(t)).getDate() );
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,105 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.10.js
|
||||
ECMA Section: 15.9.5.10
|
||||
Description: Date.prototype.getDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
3.Return DateFromTime(LocalTime(t)).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.10";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// get the current time
|
||||
var now = (new Date()).valueOf();
|
||||
|
||||
// calculate time for year 0
|
||||
for ( var time = 0, year = 1969; year >= 0; year-- ) {
|
||||
time -= TimeInYear(year);
|
||||
}
|
||||
// get time for 29 feb 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerHour;
|
||||
|
||||
// get time for 1 jan 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000)+TimeInYear(2001)+
|
||||
TimeInYear(2002)+TimeInYear(2003)+TimeInYear(2004);
|
||||
|
||||
// some daylight savings time cases
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addTestCase( DST_START_1998 );
|
||||
/*
|
||||
addTestCase( DST_START_1998-1 );
|
||||
addTestCase( DST_START_1998+1 );
|
||||
addTestCase( DST_END_1998 );
|
||||
addTestCase( DST_END_1998-1 );
|
||||
addTestCase( DST_END_1998+1 );
|
||||
*/
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date(NaN)).getDate()",
|
||||
NaN,
|
||||
(new Date(NaN)).getDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"Date.prototype.getDate.length",
|
||||
0,
|
||||
Date.prototype.getDate.length );
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( d = 0; d < TimeInMonth(MonthFromTime(t)); d+= msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getDate()",
|
||||
DateFromTime(LocalTime(t)),
|
||||
(new Date(t)).getDate() );
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,104 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.10.js
|
||||
ECMA Section: 15.9.5.10
|
||||
Description: Date.prototype.getDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
3.Return DateFromTime(LocalTime(t)).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.10";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// get the current time
|
||||
var now = (new Date()).valueOf();
|
||||
|
||||
// calculate time for year 0
|
||||
for ( var time = 0, year = 1969; year >= 0; year-- ) {
|
||||
time -= TimeInYear(year);
|
||||
}
|
||||
// get time for 29 feb 2000
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + 31*msPerDay + 28*msPerHour;
|
||||
|
||||
// get time for 1 jan 2005
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000)+TimeInYear(2001)+
|
||||
TimeInYear(2002)+TimeInYear(2003)+TimeInYear(2004);
|
||||
|
||||
// some daylight savings time cases
|
||||
|
||||
var DST_START_1998 = UTC( GetFirstSundayInApril(TimeFromYear(1998)) + 2*msPerHour )
|
||||
|
||||
var DST_END_1998 = UTC( GetLastSundayInOctober(TimeFromYear(1998)) + 2*msPerHour );
|
||||
|
||||
addTestCase( DST_START_1998-1 );
|
||||
/*
|
||||
addTestCase( DST_START_1998+1 );
|
||||
addTestCase( DST_END_1998 );
|
||||
addTestCase( DST_END_1998-1 );
|
||||
addTestCase( DST_END_1998+1 );
|
||||
*/
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date(NaN)).getDate()",
|
||||
NaN,
|
||||
(new Date(NaN)).getDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"Date.prototype.getDate.length",
|
||||
0,
|
||||
Date.prototype.getDate.length );
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( d = 0; d < TimeInMonth(MonthFromTime(t)); d+= msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getDate()",
|
||||
DateFromTime(LocalTime(t)),
|
||||
(new Date(t)).getDate() );
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.11.js
|
||||
ECMA Section: 15.9.5.11
|
||||
Description: Date.prototype.getUTCDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
1.Return DateFromTime(t).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.11";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getUTCDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// get the current time
|
||||
var now = (new Date()).valueOf();
|
||||
|
||||
addTestCase( now );
|
||||
|
||||
test()
|
||||
|
||||
function addTestCase( t ) {
|
||||
for ( var m = 0; m < 11; m++ ) {
|
||||
t += TimeInMonth(m);
|
||||
|
||||
for ( var d = 0; d < TimeInMonth( m ); d += 7*msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getUTCDate()",
|
||||
DateFromTime((t)),
|
||||
(new Date(t)).getUTCDate() );
|
||||
/*
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t+1)+")).getUTCDate()",
|
||||
DateFromTime((t+1)),
|
||||
(new Date(t+1)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t-1)+")).getUTCDate()",
|
||||
DateFromTime((t-1)),
|
||||
(new Date(t-1)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t-TZ_ADJUST)+")).getUTCDate()",
|
||||
DateFromTime((t-TZ_ADJUST)),
|
||||
(new Date(t-TZ_ADJUST)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t+TZ_ADJUST)+")).getUTCDate()",
|
||||
DateFromTime((t+TZ_ADJUST)),
|
||||
(new Date(t+TZ_ADJUST)).getUTCDate() );
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.11
|
||||
ECMA Section: 15.9.5.11
|
||||
Description: Date.prototype.getUTCDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
1.Return DateFromTime(t).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.11";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getUTCDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
// calculate time for year 0
|
||||
for ( var time = 0, year = 1969; year >= 0; year-- ) {
|
||||
time -= TimeInYear(year);
|
||||
}
|
||||
|
||||
addTestCase( time );
|
||||
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( var m = 0; m < 11; m++ ) {
|
||||
t += TimeInMonth(m);
|
||||
|
||||
for ( var d = 0; d < TimeInMonth( m ); d += 7*msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getUTCDate()",
|
||||
DateFromTime((t)),
|
||||
(new Date(t)).getUTCDate() );
|
||||
/*
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t+1)+")).getUTCDate()",
|
||||
DateFromTime((t+1)),
|
||||
(new Date(t+1)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t-1)+")).getUTCDate()",
|
||||
DateFromTime((t-1)),
|
||||
(new Date(t-1)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t-TZ_ADJUST)+")).getUTCDate()",
|
||||
DateFromTime((t-TZ_ADJUST)),
|
||||
(new Date(t-TZ_ADJUST)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t+TZ_ADJUST)+")).getUTCDate()",
|
||||
DateFromTime((t+TZ_ADJUST)),
|
||||
(new Date(t+TZ_ADJUST)).getUTCDate() );
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,92 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.11.js
|
||||
ECMA Section: 15.9.5.11
|
||||
Description: Date.prototype.getUTCDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
1.Return DateFromTime(t).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.11";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getUTCDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
addTestCase( TIME_1970 );
|
||||
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( var m = 0; m < 11; m++ ) {
|
||||
t += TimeInMonth(m);
|
||||
|
||||
for ( var d = 0; d < TimeInMonth( m ); d += 7*msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getUTCDate()",
|
||||
DateFromTime((t)),
|
||||
(new Date(t)).getUTCDate() );
|
||||
/*
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t+1)+")).getUTCDate()",
|
||||
DateFromTime((t+1)),
|
||||
(new Date(t+1)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t-1)+")).getUTCDate()",
|
||||
DateFromTime((t-1)),
|
||||
(new Date(t-1)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t-TZ_ADJUST)+")).getUTCDate()",
|
||||
DateFromTime((t-TZ_ADJUST)),
|
||||
(new Date(t-TZ_ADJUST)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t+TZ_ADJUST)+")).getUTCDate()",
|
||||
DateFromTime((t+TZ_ADJUST)),
|
||||
(new Date(t+TZ_ADJUST)).getUTCDate() );
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,92 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.11.js
|
||||
ECMA Section: 15.9.5.11
|
||||
Description: Date.prototype.getUTCDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
1.Return DateFromTime(t).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.11";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getUTCDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
addTestCase( TIME_1900 );
|
||||
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( var m = 0; m < 11; m++ ) {
|
||||
t += TimeInMonth(m);
|
||||
|
||||
for ( var d = 0; d < TimeInMonth( m ); d += 7* msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getUTCDate()",
|
||||
DateFromTime((t)),
|
||||
(new Date(t)).getUTCDate() );
|
||||
/*
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t+1)+")).getUTCDate()",
|
||||
DateFromTime((t+1)),
|
||||
(new Date(t+1)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t-1)+")).getUTCDate()",
|
||||
DateFromTime((t-1)),
|
||||
(new Date(t-1)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t-TZ_ADJUST)+")).getUTCDate()",
|
||||
DateFromTime((t-TZ_ADJUST)),
|
||||
(new Date(t-TZ_ADJUST)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t+TZ_ADJUST)+")).getUTCDate()",
|
||||
DateFromTime((t+TZ_ADJUST)),
|
||||
(new Date(t+TZ_ADJUST)).getUTCDate() );
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,92 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.11.js
|
||||
ECMA Section: 15.9.5.11
|
||||
Description: Date.prototype.getUTCDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
1.Return DateFromTime(t).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.11";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getUTCDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
addTestCase( TIME_2000 );
|
||||
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( var m = 0; m < 11; m++ ) {
|
||||
t += TimeInMonth(m);
|
||||
|
||||
for ( var d = 0; d < TimeInMonth( m ); d += 7*msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getUTCDate()",
|
||||
DateFromTime((t)),
|
||||
(new Date(t)).getUTCDate() );
|
||||
/*
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t+1)+")).getUTCDate()",
|
||||
DateFromTime((t+1)),
|
||||
(new Date(t+1)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t-1)+")).getUTCDate()",
|
||||
DateFromTime((t-1)),
|
||||
(new Date(t-1)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t-TZ_ADJUST)+")).getUTCDate()",
|
||||
DateFromTime((t-TZ_ADJUST)),
|
||||
(new Date(t-TZ_ADJUST)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t+TZ_ADJUST)+")).getUTCDate()",
|
||||
DateFromTime((t+TZ_ADJUST)),
|
||||
(new Date(t+TZ_ADJUST)).getUTCDate() );
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.11.js
|
||||
ECMA Section: 15.9.5.11
|
||||
Description: Date.prototype.getUTCDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
1.Return DateFromTime(t).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.11";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getUTCDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
var UTC_FEB_29_2000 = TIME_2000 + ( 30 * msPerDay ) + ( 29 * msPerDay );
|
||||
|
||||
addTestCase( UTC_FEB_29_2000 );
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( var m = 0; m < 11; m++ ) {
|
||||
t += TimeInMonth(m);
|
||||
|
||||
for ( var d = 0; d < TimeInMonth( m ); d += 7*msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getUTCDate()",
|
||||
DateFromTime((t)),
|
||||
(new Date(t)).getUTCDate() );
|
||||
/*
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t+1)+")).getUTCDate()",
|
||||
DateFromTime((t+1)),
|
||||
(new Date(t+1)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t-1)+")).getUTCDate()",
|
||||
DateFromTime((t-1)),
|
||||
(new Date(t-1)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t-TZ_ADJUST)+")).getUTCDate()",
|
||||
DateFromTime((t-TZ_ADJUST)),
|
||||
(new Date(t-TZ_ADJUST)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t+TZ_ADJUST)+")).getUTCDate()",
|
||||
DateFromTime((t+TZ_ADJUST)),
|
||||
(new Date(t+TZ_ADJUST)).getUTCDate() );
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
@@ -1,95 +0,0 @@
|
||||
/* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released March
|
||||
* 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
/**
|
||||
File Name: 15.9.5.11.js
|
||||
ECMA Section: 15.9.5.11
|
||||
Description: Date.prototype.getUTCDate
|
||||
|
||||
1.Let t be this time value.
|
||||
2.If t is NaN, return NaN.
|
||||
1.Return DateFromTime(t).
|
||||
|
||||
Author: christine@netscape.com
|
||||
Date: 12 november 1997
|
||||
*/
|
||||
|
||||
var SECTION = "15.9.5.11";
|
||||
var VERSION = "ECMA_1";
|
||||
startTest();
|
||||
var TITLE = "Date.prototype.getUTCDate()";
|
||||
|
||||
writeHeaderToLog( SECTION + " "+ TITLE);
|
||||
|
||||
var testcases = new Array();
|
||||
|
||||
var TZ_ADJUST = TZ_DIFF * msPerHour;
|
||||
|
||||
var UTC_JAN_1_2005 = TIME_2000 + TimeInYear(2000)+TimeInYear(2001)+
|
||||
TimeInYear(2002)+TimeInYear(2003)+TimeInYear(2004);
|
||||
|
||||
addTestCase( UTC_JAN_1_2005 );
|
||||
|
||||
test();
|
||||
function addTestCase( t ) {
|
||||
for ( var m = 0; m < 11; m++ ) {
|
||||
t += TimeInMonth(m);
|
||||
|
||||
for ( var d = 0; d < TimeInMonth( m ); d += 7*msPerDay ) {
|
||||
t += d;
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+t+")).getUTCDate()",
|
||||
DateFromTime((t)),
|
||||
(new Date(t)).getUTCDate() );
|
||||
/*
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t+1)+")).getUTCDate()",
|
||||
DateFromTime((t+1)),
|
||||
(new Date(t+1)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t-1)+")).getUTCDate()",
|
||||
DateFromTime((t-1)),
|
||||
(new Date(t-1)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t-TZ_ADJUST)+")).getUTCDate()",
|
||||
DateFromTime((t-TZ_ADJUST)),
|
||||
(new Date(t-TZ_ADJUST)).getUTCDate() );
|
||||
|
||||
testcases[tc++] = new TestCase( SECTION,
|
||||
"(new Date("+(t+TZ_ADJUST)+")).getUTCDate()",
|
||||
DateFromTime((t+TZ_ADJUST)),
|
||||
(new Date(t+TZ_ADJUST)).getUTCDate() );
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
function test() {
|
||||
for ( tc=0; tc < testcases.length; tc++ ) {
|
||||
testcases[tc].passed = writeTestCaseResult(
|
||||
testcases[tc].expect,
|
||||
testcases[tc].actual,
|
||||
testcases[tc].description +" = "+
|
||||
testcases[tc].actual );
|
||||
|
||||
testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
|
||||
}
|
||||
stopTest();
|
||||
return ( testcases );
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user