Merge pull request #13349 from erik-krogh/stopRecLaterAccess

JS: stop recursive fromRhs related to getLaterBaseAccess
This commit is contained in:
Erik Krogh Kristensen
2023-06-02 10:39:14 +02:00
committed by GitHub
2 changed files with 35 additions and 1 deletions

View File

@@ -234,7 +234,8 @@ module AccessPath {
or
baseName = fromRhs(write.getBase(), root)
or
baseName = fromRhs(GetLaterAccess::getLaterBaseAccess(write), root)
baseName = fromRhs(GetLaterAccess::getLaterBaseAccess(write), root) and
not baseName.matches("%.%")
)
or
exists(GlobalVariable var |

View File

@@ -0,0 +1,33 @@
// stress test for global access path computation
var MyObject = {}
MyObject.Foo1 = { inner: MyObject };
MyObject.Foo2 = { inner: MyObject };
MyObject.Foo3 = { inner: MyObject };
MyObject.Foo4 = { inner: MyObject };
MyObject.Foo5 = { inner: MyObject };
MyObject.Foo6 = { inner: MyObject };
MyObject.Foo7 = { inner: MyObject };
MyObject.Foo8 = { inner: MyObject };
MyObject.Foo9 = { inner: MyObject };
MyObject.Fooa = { inner: MyObject };
MyObject.Foob = { inner: MyObject };
MyObject.Fooc = { inner: MyObject };
MyObject.Food = { inner: MyObject };
MyObject.Fooe = { inner: MyObject };
MyObject.Foof = { inner: MyObject };
MyObject.Foog = { inner: MyObject };
MyObject.Fooh = { inner: MyObject };
MyObject.Fooi = { inner: MyObject };
MyObject.Fooj = { inner: MyObject };
MyObject.Fook = { inner: MyObject };
MyObject.Fool = { inner: MyObject };
MyObject.Foom = { inner: MyObject };
MyObject.Foon = { inner: MyObject };
MyObject.Fooo = { inner: MyObject };
MyObject.Foop = { inner: MyObject };
MyObject.Fooq = { inner: MyObject };
MyObject.Foor = { inner: MyObject };
MyObject.Foos = { inner: MyObject };
MyObject.Foot = { inner: MyObject };
exports.MyObject = MyObject;