Skip to content

Commit

Permalink
Fix chakra-core#1318. Date.UTC should return NaN with <= 2 arguments.
Browse files Browse the repository at this point in the history
  • Loading branch information
dilijev committed Aug 17, 2016
1 parent 2c5d8e8 commit 4f6aa20
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 6 deletions.
8 changes: 8 additions & 0 deletions lib/Runtime/Library/DateImplementation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1581,6 +1581,14 @@ namespace Js {
double dblT;
uint ivar;

// See: https://github.com/Microsoft/ChakraCore/issues/1318
// Date.UTC should return NaN with < 2 arguments.
// args.Info.Count includes an implicit first parameter, so we check for Count <= 2.
if (args.Info.Count <= 2)
{
return JavascriptNumber::NaN;
}

for (ivar = 0; (ivar < (args.Info.Count-1)) && ivar < kcvarMax; ++ivar)
{
rgdbl[ivar] = JavascriptConversion::ToNumber(args[ivar+1],scriptContext);
Expand Down
5 changes: 2 additions & 3 deletions lib/Runtime/Library/JavascriptDate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -829,11 +829,10 @@ namespace Js

ARGUMENTS(args, callInfo);
ScriptContext* scriptContext = function->GetScriptContext();

Assert(!(callInfo.Flags & CallFlags_New));

double dblRetVal = DateImplementation::DateFncUTC(scriptContext,args);
return JavascriptNumber::ToVarNoCheck(dblRetVal,scriptContext);
double dblRetVal = DateImplementation::DateFncUTC(scriptContext, args);
return JavascriptNumber::ToVarNoCheck(dblRetVal, scriptContext);
}

double JavascriptDate::ParseHelper(ScriptContext *scriptContext, JavascriptString *str)
Expand Down
6 changes: 3 additions & 3 deletions test/Date/dateutc.baseline
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
126230400000
126230400000
NaN
NaN
149817600000
151804800000
151804800000
Expand All @@ -10,4 +10,4 @@
-2151877169960
151806030040
NaN
-2208988800000
NaN

0 comments on commit 4f6aa20

Please sign in to comment.