Skip to content

Commit 9240377

Browse files
author
Kevin Smith
committed
[MERGE #6225 @zenparsing] Fix incorrect assertions when testing for undefined in string methods
Merge pull request #6225 from zenparsing:fix-string-undefined-asserts Fixes #6221 Calling `IsUndefinedObject` with a script context will assert that the var's library is the same as the script context's library, which may not be the case.
2 parents 345a58a + a7fd439 commit 9240377

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

lib/Runtime/Library/JavascriptString.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,7 +1057,7 @@ namespace Js
10571057

10581058
if (args.Info.Count > 2)
10591059
{
1060-
if (JavascriptOperators::IsUndefinedObject(args[2], scriptContext))
1060+
if (JavascriptOperators::IsUndefinedObject(args[2]))
10611061
{
10621062
position = 0;
10631063
}
@@ -1813,10 +1813,10 @@ namespace Js
18131813

18141814
if (args.Info.Count > 1)
18151815
{
1816-
idxStart = JavascriptOperators::IsUndefinedObject(args[1], scriptContext) ? 0 : ConvertToIndex(args[1], scriptContext);
1816+
idxStart = JavascriptOperators::IsUndefinedObject(args[1]) ? 0 : ConvertToIndex(args[1], scriptContext);
18171817
if (args.Info.Count > 2)
18181818
{
1819-
idxEnd = JavascriptOperators::IsUndefinedObject(args[2], scriptContext) ? len : ConvertToIndex(args[2], scriptContext);
1819+
idxEnd = JavascriptOperators::IsUndefinedObject(args[2]) ? len : ConvertToIndex(args[2], scriptContext);
18201820
}
18211821
}
18221822

@@ -1881,7 +1881,7 @@ namespace Js
18811881
else
18821882
{
18831883
uint32 limit;
1884-
if (args.Info.Count < 3 || JavascriptOperators::IsUndefinedObject(args[2], scriptContext))
1884+
if (args.Info.Count < 3 || JavascriptOperators::IsUndefinedObject(args[2]))
18851885
{
18861886
limit = UINT_MAX;
18871887
}
@@ -1943,10 +1943,10 @@ namespace Js
19431943

19441944
if (args.Info.Count > 1)
19451945
{
1946-
idxStart = JavascriptOperators::IsUndefinedObject(args[1], scriptContext) ? 0 : ConvertToIndex(args[1], scriptContext);
1946+
idxStart = JavascriptOperators::IsUndefinedObject(args[1]) ? 0 : ConvertToIndex(args[1], scriptContext);
19471947
if (args.Info.Count > 2)
19481948
{
1949-
idxEnd = JavascriptOperators::IsUndefinedObject(args[2], scriptContext) ? len : ConvertToIndex(args[2], scriptContext);
1949+
idxEnd = JavascriptOperators::IsUndefinedObject(args[2]) ? len : ConvertToIndex(args[2], scriptContext);
19501950
}
19511951
}
19521952

@@ -1992,10 +1992,10 @@ namespace Js
19921992

19931993
if (args.Info.Count > 1)
19941994
{
1995-
idxStart = JavascriptOperators::IsUndefinedObject(args[1], scriptContext) ? 0 : ConvertToIndex(args[1], scriptContext);
1995+
idxStart = JavascriptOperators::IsUndefinedObject(args[1]) ? 0 : ConvertToIndex(args[1], scriptContext);
19961996
if (args.Info.Count > 2)
19971997
{
1998-
idxEnd = JavascriptOperators::IsUndefinedObject(args[2], scriptContext) ? len : ConvertToIndex(args[2], scriptContext);
1998+
idxEnd = JavascriptOperators::IsUndefinedObject(args[2]) ? len : ConvertToIndex(args[2], scriptContext);
19991999
}
20002000
}
20012001
if (idxStart < 0)
@@ -2089,7 +2089,7 @@ namespace Js
20892089
}
20902090

20912091
JavascriptString * fillerString = nullptr;
2092-
if (args.Info.Count > 2 && !JavascriptOperators::IsUndefinedObject(args[2], scriptContext))
2092+
if (args.Info.Count > 2 && !JavascriptOperators::IsUndefinedObject(args[2]))
20932093
{
20942094
JavascriptString *argStr = JavascriptConversion::ToString(args[2], scriptContext);
20952095
if (argStr->GetLength() > 0)
@@ -2509,7 +2509,7 @@ namespace Js
25092509

25102510
if (args.Info.Count > 1)
25112511
{
2512-
if (!JavascriptOperators::IsUndefinedObject(args[1], scriptContext))
2512+
if (!JavascriptOperators::IsUndefinedObject(args[1]))
25132513
{
25142514
double countDbl = JavascriptConversion::ToInteger(args[1], scriptContext);
25152515
if (JavascriptNumber::IsPosInf(countDbl) || countDbl < 0.0)
@@ -2600,7 +2600,7 @@ namespace Js
26002600

26012601
if (args.Info.Count > 2)
26022602
{
2603-
if (!JavascriptOperators::IsUndefinedObject(args[2], scriptContext))
2603+
if (!JavascriptOperators::IsUndefinedObject(args[2]))
26042604
{
26052605
startPosition = ConvertToIndex(args[2], scriptContext); // this is to adjust corner cases like MAX_VALUE
26062606
startPosition = min(max(startPosition, 0), thisStrLen);
@@ -2655,7 +2655,7 @@ namespace Js
26552655

26562656
if (args.Info.Count > 2)
26572657
{
2658-
if (!JavascriptOperators::IsUndefinedObject(args[2], scriptContext))
2658+
if (!JavascriptOperators::IsUndefinedObject(args[2]))
26592659
{
26602660
endPosition = ConvertToIndex(args[2], scriptContext); // this is to adjust corner cases like MAX_VALUE
26612661
endPosition = min(max(endPosition, 0), thisStrLen);

0 commit comments

Comments
 (0)