File tree Expand file tree Collapse file tree 3 files changed +49
-0
lines changed
library-tests/TypeTracking Expand file tree Collapse file tree 3 files changed +49
-0
lines changed Original file line number Diff line number Diff line change @@ -25,3 +25,24 @@ MyOtherStream.prototype.instanceProp = 1; /* def=moduleImport("classes").getMemb
25
25
MyOtherStream . classProp = 1 ; /* def=moduleImport("classes").getMember("exports").getMember("MyOtherStream").getMember("classProp") */
26
26
27
27
module . exports . MyOtherStream = MyOtherStream ;
28
+
29
+
30
+ // function-style class without .prototype reference
31
+ function MyThirdStream ( ) { /* use=moduleImport("classes").getMember("exports").getMember("MyThirdStream").getInstance() */
32
+ }
33
+ let instance = new MyThirdStream ( ) ; /* use=moduleImport("classes").getMember("exports").getMember("MyThirdStream").getInstance() */
34
+
35
+ module . exports . MyThirdStream = MyThirdStream ;
36
+
37
+
38
+ // function-style class without .prototype reference (through global variable)
39
+ ( function ( f ) {
40
+ foo . bar = function ( ) { /* use=moduleImport("classes").getMember("exports").getMember("bar").getInstance() */
41
+ }
42
+ } ) ( foo = foo || { } ) ;
43
+
44
+ ( function ( f ) {
45
+ let x = new f . bar ( ) ; /* use=moduleImport("classes").getMember("exports").getMember("bar").getInstance() */
46
+ } ) ( foo = foo || { } ) ;
47
+
48
+ module . exports . bar = foo . bar ;
Original file line number Diff line number Diff line change
1
+
Original file line number Diff line number Diff line change
1
+ import 'dummy' ;
2
+
3
+ let trackedProp = "implicit-receiver-prop" ; // name: implicit-receiver-prop
4
+
5
+ function factory ( ) {
6
+ let obj = unknown ( ) ; // name: implicit-receiver-obj
7
+ obj . foo = function ( ) {
8
+ track ( this ) ; // track: implicit-receiver-obj
9
+ track ( this . x ) ; // track: implicit-receiver-obj track: implicit-receiver-prop
10
+ }
11
+ return obj ;
12
+ }
13
+ let obj = factory ( ) ;
14
+ obj . x = trackedProp ;
15
+
16
+
17
+ function factory2 ( ) {
18
+ let obj2 = { // name: implicit-receiver-obj2
19
+ foo : function ( ) {
20
+ track ( this ) ; // track: implicit-receiver-obj2
21
+ track ( this . x ) ; // track: implicit-receiver-obj2 track: implicit-receiver-prop
22
+ }
23
+ }
24
+ return obj2 ;
25
+ }
26
+ let obj2 = factory2 ( )
27
+ obj2 . x = trackedProp ;
You can’t perform that action at this time.
0 commit comments