JS: Add tests with semi-internal class problem

This commit is contained in:
Asger F
2024-04-05 11:39:38 +02:00
parent 946f0b4dc4
commit f4e05cc621
3 changed files with 36 additions and 0 deletions

View File

@@ -16,6 +16,17 @@ typeModel
| (return-this).FluentInterface.prototype.foo | (return-this).FluentInterface.prototype | Member[foo] |
| (return-this).FluentInterface.prototype.notFluent | (return-this).FluentInterface.prototype | Member[notFluent] |
| (return-this).FluentInterface.prototype.notFluent2 | (return-this).FluentInterface.prototype | Member[notFluent2] |
| (semi-internal-class).PublicClass | semi-internal-class | Member[PublicClass] |
| (semi-internal-class).PublicClass.prototype | (semi-internal-class).PublicClass | Instance |
| (semi-internal-class).PublicClass.prototype | (semi-internal-class).SemiInternalClass.prototype.method | ReturnValue |
| (semi-internal-class).PublicClass.prototype | (semi-internal-class).getAnonymous~expr2 | ReturnValue |
| (semi-internal-class).PublicClass.prototype.publicMethod | (semi-internal-class).PublicClass.prototype | Member[publicMethod] |
| (semi-internal-class).SemiInternalClass.prototype | (semi-internal-class).get | ReturnValue |
| (semi-internal-class).SemiInternalClass.prototype.method | (semi-internal-class).SemiInternalClass.prototype | Member[method] |
| (semi-internal-class).get | semi-internal-class | Member[get] |
| (semi-internal-class).getAnonymous | semi-internal-class | Member[getAnonymous] |
| (semi-internal-class).getAnonymous~expr1 | (semi-internal-class).getAnonymous | ReturnValue |
| (semi-internal-class).getAnonymous~expr2 | (semi-internal-class).getAnonymous~expr1 | Member[method] |
| upstream-lib | (reexport).func | ReturnValue |
| upstream-lib | reexport | Member[lib] |
| upstream-lib.XYZ | reexport | Member[x].Member[y].Member[z] |

View File

@@ -0,0 +1,4 @@
{
"name": "semi-internal-class",
"main": "semi-internal-class.js"
}

View File

@@ -0,0 +1,21 @@
export class PublicClass {
publicMethod() {}
}
class SemiInternalClass {
method() {
return new PublicClass();
}
}
export function get() {
return new SemiInternalClass();
}
export function getAnonymous() {
return new (class {
method() {
return new PublicClass();
}
});
}