HAL Id: hal-01480084
https://hal.archives-ouvertes.fr/hal-01480084
Submitted on 7 Mar 2017
HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.
The Patches of the Nopol Automatic Repair System on the Bugs of Defects4J version 1.1.0
Thomas Durieux, Benjamin Danglot, Zhongxing Yu, Matias Martinez, Simon Urli, Martin Monperrus
To cite this version:
Thomas Durieux, Benjamin Danglot, Zhongxing Yu, Matias Martinez, Simon Urli, et al.. The Patches
of the Nopol Automatic Repair System on the Bugs of Defects4J version 1.1.0. [Research Report] hal-
01480084, Université Lille 1 - Sciences et Technologies. 2017. �hal-01480084�
The Patches of the Nopol Automatic Repair System on the Bugs of Defects4J version 1.1.0
Thomas Durieux
1Benjamin Danglot
1Zhongxing Yu
1Matias Martinez
3Simon Urli
1Martin Monperrus
1,21) Inria, 2) University of Lille, 3) University of Valenciennes Technical report hal-01480084
https://hal.archives-ouvertes.fr/hal-01480084
This report lists the test-suite adequate patches found by the Nopol automatic repair system [3]
on version 1.1.0 of the Defects4J benchmark of bugs [2]. In total, Nopol finds a test-suite adequate patches for 103 different bugs, as shown in Table 1.
To refer to this document:
@techreport{techrepNopolDefects4j2017,
TITLE = {{The Patches of the Nopol Automatic Repair System on the Bugs of Defects4J version 1.1.0}},
AUTHOR = {Durieux, Thomas and Danglot, Benjamin and Zu, Zhongxing and Martinez, Matias and Monperrus, Martin},
URL = {https://hal.archives-ouvertes.fr/hal-01480084}, INSTITUTION = {{Universit{\’e} de Lille}},
YEAR = {2017},
NUMBER = {hal-01480084}, }
We the Oracle JDK 1.7.0_7 to run Nopol and OpenJDK 1.8.0 for compiling the project Mockito.
We give a time budget of three hours to Nopol to find a patch. The experiment has been conducted on machines that are equipped of Xeon X3440 Quad-core processor and 15GB RAM, the machines are part of the Grid5000 infrastructure [1].
Reproduction information:
• Nopol source code: https://github.com/SpoonLabs/nopol/.
Commit used: 473964c2d5c668517bd45be1d878074858cb934f
• Defects4j version: https://github.com/rjust/defects4j/releases/tag/v1.1.0/
• Execution traces: https://github.com/Spirals-Team/defects4j-repair/tree/master/
results/2017-march/
1 Chart
Nopol repairs 9 bugs in the project Chart.
1.1 Chart 3
- - - / tmp / c h a r t _ 3 _ N o p o l / s o u r c e / org / j f r e e / d a t a / t i m e / T i m e S e r i e s . j a v a +++ / tmp / c h a r t _ 3 _ N o p o l / s o u r c e / org / j f r e e / d a t a / t i m e / T i m e S e r i e s . j a v a
@@ -884 ,3 +884 ,3 @@
}
- if ( r e m o v e d ) {
Table 1: The number of synthesized test-suite adequate patches for each project.
Project # Patches # Bugs Repair Rate
Chart 9 26 37%
Closure 56 133 42%
Lang 4 65 6%
Math 24 106 22%
Mockito 2 38 5%
Time 8 27 29%
Total 103 395 26%
+ if ((( r e m o v e d ) && ( r e m o v e d ) ) || ( org . j f r e e . d a t a . t i m e . T i m e S e r i e s .
D E F A U L T _ R A N G E _ D E S C R I P T I O N . l e n g t h () <= org . j f r e e . d a t a . t i m e . T i m e S e r i e s . t h i s . m a x Y ) ) { f i n d B o u n d s B y I t e r a t i o n () ;
Listing 1: "The generated patch for the bug Chart 3"
Number of tests that execute the patch: 86 Execution time: 50 seconds
1.2 Chart 4
- - - / tmp / c h a r t _ 4 _ N o p o l / s o u r c e / org / j f r e e / c h a r t / p l o t / X Y P l o t . j a v a +++ / tmp / c h a r t _ 4 _ N o p o l / s o u r c e / org / j f r e e / c h a r t / p l o t / X Y P l o t . j a v a
@@ -1606 ,3 +1606 ,5 @@
p u b l i c v o i d s e t R e n d e r e r ( X Y I t e m R e n d e r e r r e n d e r e r ) { - s e t R e n d e r e r (0 , r e n d e r e r ) ;
+ if ( r e n d e r e r != n u l l ) {
+ s e t R e n d e r e r (0 , r e n d e r e r ) ;
+ }
}
Listing 2: "The generated patch for the bug Chart 4"
Number of tests that execute the patch: 18 Execution time: 7 minutes, 32 seconds
1.3 Chart 5
- - - / tmp / c h a r t _ 5 _ N o p o l / s o u r c e / org / j f r e e / d a t a / xy / X Y S e r i e s . j a v a +++ / tmp / c h a r t _ 5 _ N o p o l / s o u r c e / org / j f r e e / d a t a / xy / X Y S e r i e s . j a v a
@@ -562 ,3 +562 ,3 @@
// a p p e n d the v a l u e to the l i s t ...
- if ( t h i s . a u t o S o r t ) {
+ if ( o v e r w r i t t e n != n u l l ) {
t h i s. d a t a . add ( - i n d e x - 1 , new X Y D a t a I t e m ( x , y ) ) ;
Listing 3: "The generated patch for the bug Chart 5"
Number of tests that execute the patch: 6 Execution time: 38 seconds
1.4 Chart 9
- - - / tmp / c h a r t _ 9 _ N o p o l / s o u r c e / org / j f r e e / d a t a / t i m e / T i m e S e r i e s . j a v a +++ / tmp / c h a r t _ 9 _ N o p o l / s o u r c e / org / j f r e e / d a t a / t i m e / T i m e S e r i e s . j a v a
@@ -882 ,3 +882 ,5 @@
if ( end < s t a r t ) {
- t h r o w new I l l e g a l A r g u m e n t E x c e p t i o n (" R e q u i r e s s t a r t <= end .") ;
+ if ( org . j f r e e . d a t a . t i m e . T i m e S e r i e s . t h i s . d a t a . s i z e () == org . j f r e e . d a t a . t i m e . T i m e S e r i e s . t h i s . r a n g e . l e n g t h () ) {
+ t h r o w new I l l e g a l A r g u m e n t E x c e p t i o n (" R e q u i r e s s t a r t <= end .") ;
+ }
}
Listing 4: "The generated patch for the bug Chart 9"
Number of tests that execute the patch: 4 Execution time: 34 seconds
1.5 Chart 13
- - - / tmp / c h a r t _ 1 3 _ N o p o l / s o u r c e / org / j f r e e / c h a r t / b l o c k / B o r d e r A r r a n g e m e n t . j a v a +++ / tmp / c h a r t _ 1 3 _ N o p o l / s o u r c e / org / j f r e e / c h a r t / b l o c k / B o r d e r A r r a n g e m e n t . j a v a
@@ -452 ,9 +452 ,11 @@
h [3] = h [ 2 ] ;
- if ( t h i s . r i g h t B l o c k != n u l l ) {
- R e c t a n g l e C o n s t r a i n t c4 = new R e c t a n g l e C o n s t r a i n t (0.0 ,
- new R a n g e (0.0 , c o n s t r a i n t . g e t W i d t h () - w [ 2 ] ) ,
- L e n g t h C o n s t r a i n t T y p e . RANGE , h [2] , null ,
- L e n g t h C o n s t r a i n t T y p e . F I X E D ) ;
- S i z e 2 D s i z e = t h i s . r i g h t B l o c k . a r r a n g e ( g2 , c4 ) ;
- w [3] = s i z e . w i d t h ;
+ if ( n u l l != n u l l ) {
+ if ( t h i s . r i g h t B l o c k != n u l l ) {
+ R e c t a n g l e C o n s t r a i n t c4 = new R e c t a n g l e C o n s t r a i n t (0.0 , + new R a n g e (0.0 , c o n s t r a i n t . g e t W i d t h () - w [ 2 ] ) ,
+ L e n g t h C o n s t r a i n t T y p e . RANGE , h [2] , null ,
+ L e n g t h C o n s t r a i n t T y p e . F I X E D ) ;
+ S i z e 2 D s i z e = t h i s . r i g h t B l o c k . a r r a n g e ( g2 , c4 ) ;
+ w [3] = s i z e . w i d t h ;
+ }
}
Listing 5: "The generated patch for the bug Chart 13"
Number of tests that execute the patch: 2 Execution time: 42 seconds
1.6 Chart 17
- - - / tmp / c h a r t _ 1 7 _ N o p o l / s o u r c e / org / j f r e e / d a t a / t i m e / T i m e S e r i e s . j a v a +++ / tmp / c h a r t _ 1 7 _ N o p o l / s o u r c e / org / j f r e e / d a t a / t i m e / T i m e S e r i e s . j a v a
@@ -879 ,3 +879 ,5 @@
if ( end < s t a r t ) {
- t h r o w new I l l e g a l A r g u m e n t E x c e p t i o n (" R e q u i r e s s t a r t <= end .") ;
+ if ( org . j f r e e . d a t a . t i m e . T i m e S e r i e s . t h i s . d a t a . s i z e () == org . j f r e e . d a t a . t i m e . T i m e S e r i e s . t h i s . r a n g e . l e n g t h () ) {
+ t h r o w new I l l e g a l A r g u m e n t E x c e p t i o n (" R e q u i r e s s t a r t <= end .") ;
+ }
}
Listing 6: "The generated patch for the bug Chart 17"
Number of tests that execute the patch: 4 Execution time: 33 seconds
1.7 Chart 21
- - - / tmp / c h a r t _ 2 1 _ N o p o l / s o u r c e / org / j f r e e / d a t a / R a n g e . j a v a +++ / tmp / c h a r t _ 2 1 _ N o p o l / s o u r c e / org / j f r e e / d a t a / R a n g e . j a v a
@@ -334 ,3 +334 ,5 @@
if (!(t h i s. l o w e r == r a n g e . l o w e r ) ) {
- r e t u r n f a l s e ;
+ if ( ( ( 1 + org . j f r e e . d a t a . R a n g e . t h i s . l o w e r ) - ( -1) < org . j f r e e . d a t a . R a n g e . t h i s . u p p e r ) || ( org . j f r e e . d a t a . R a n g e . t h i s . l o w e r <= 0) ) {
+ r e t u r n f a l s e ;
+ }
}
Listing 7: "The generated patch for the bug Chart 21"
Number of tests that execute the patch: 12 Execution time: 37 seconds
1.8 Chart 25
- - - / tmp / c h a r t _ 2 5 _ N o p o l / s o u r c e / org / j f r e e / c h a r t / r e n d e r e r / c a t e g o r y / S t a t i s t i c a l B a r R e n d e r e r . j a v a +++ / tmp / c h a r t _ 2 5 _ N o p o l / s o u r c e / org / j f r e e / c h a r t / r e n d e r e r / c a t e g o r y / S t a t i s t i c a l B a r R e n d e r e r . j a v a
@@ -206 ,10 +206 ,12 @@
P l o t O r i e n t a t i o n o r i e n t a t i o n = p l o t . g e t O r i e n t a t i o n () ; - if ( o r i e n t a t i o n == P l o t O r i e n t a t i o n . H O R I Z O N T A L ) {
- d r a w H o r i z o n t a l I t e m ( g2 , state , d a t a A r e a , plot , d o m a i n A x i s ,
- r a n g e A x i s , s t a t D a t a , row , c o l u m n ) ;
+ if (0 == 1) {
+ if ( o r i e n t a t i o n == P l o t O r i e n t a t i o n . H O R I Z O N T A L ) {
+ d r a w H o r i z o n t a l I t e m ( g2 , state , d a t a A r e a , plot , d o m a i n A x i s , + r a n g e A x i s , s t a t D a t a , row , c o l u m n ) ;
+ }
+ e l s e if ( o r i e n t a t i o n == P l o t O r i e n t a t i o n . V E R T I C A L ) {
+ d r a w V e r t i c a l I t e m ( g2 , state , d a t a A r e a , plot , d o m a i n A x i s , r a n g e A x i s ,
+ s t a t D a t a , row , c o l u m n ) ;
+ } }
- e l s e if ( o r i e n t a t i o n == P l o t O r i e n t a t i o n . V E R T I C A L ) {
- d r a w V e r t i c a l I t e m ( g2 , state , d a t a A r e a , plot , d o m a i n A x i s , r a n g e A x i s ,
- s t a t D a t a , row , c o l u m n ) ;
- }
}
Listing 8: "The generated patch for the bug Chart 25"
Number of tests that execute the patch: 10 Execution time: 33 seconds
1.9 Chart 26
- - - / tmp / c h a r t _ 2 6 _ N o p o l / s o u r c e / org / j f r e e / c h a r t / p l o t / C a t e g o r y P l o t . j a v a +++ / tmp / c h a r t _ 2 6 _ N o p o l / s o u r c e / org / j f r e e / c h a r t / p l o t / C a t e g o r y P l o t . j a v a
@@ -2537 ,3 +2537 ,3 @@
b o o l e a n b2 = ( a r e a . g e t H e i g h t () <= M I N I M U M _ H E I G H T _ T O _ D R A W ) ;
- if ( b1 || b2 ) {
+ if ( org . j f r e e . c h a r t . p l o t . C a t e g o r y P l o t . D E F A U L T _ C R O S S H A I R _ S T R O K E != n u l l ) { r e t u r n;
Listing 9: "The generated patch for the bug Chart 26"
Number of tests that execute the patch: 48 Execution time: 1 minute, 40 seconds
2 Closure
Nopol repairs 56 bugs in the project Closure.
2.1 Closure 1
- - - / tmp / c l o s u r e _ 1 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 1 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1410 ,7 +1410 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if (( n o d e 2 . t y p e ) != ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e ) ) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 10: "The generated patch for the bug Closure 1"
Number of tests that execute the patch: 15 Execution time: 2 minutes, 4 seconds
2.2 Closure 2
- - - / tmp / c l o s u r e _ 2 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / T y p e C h e c k . j a v a +++ / tmp / c l o s u r e _ 2 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / T y p e C h e c k . j a v a
@@ -1663 ,4 +1663 ,6 @@
c u r r e n t P r o p e r t i e s . c l e a r () ;
- c h e c k I n t e r f a c e C o n f l i c t P r o p e r t i e s ( t , n , f u n c t i o n P r i v a t e N a m e , - p r o p e r t i e s , c u r r e n t P r o p e r t i e s , i n t e r f a c e T y p e ) ;
+ if ( com . g o o g l e . j a v a s c r i p t . j s c o m p . T y p e C h e c k . t h i s . u n k n o w n C o u n t < com . g o o g l e . j a v a s c r i p t . j s c o m p . T y p e C h e c k . t h i s . t y p e d C o u n t ) {
+ c h e c k I n t e r f a c e C o n f l i c t P r o p e r t i e s ( t , n , f u n c t i o n P r i v a t e N a m e , + p r o p e r t i e s , c u r r e n t P r o p e r t i e s , i n t e r f a c e T y p e ) ;
+ }
p r o p e r t i e s . p u t A l l ( c u r r e n t P r o p e r t i e s ) ;
Listing 11: "The generated patch for the bug Closure 2"
Number of tests that execute the patch: 17 Execution time: 2 minutes, 7 seconds
2.3 Closure 3
- - - / tmp / c l o s u r e _ 3 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 3 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1410 ,7 +1410 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e <= com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . I N F E R R E D _ F U N C T I O N ) {
+ r e t u r n " N o d e t r e e i n e q u a l i t y :" + + "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 12: "The generated patch for the bug Closure 3"
Number of tests that execute the patch: 10 Execution time: 7 minutes, 8 seconds
2.4 Closure 5
- - - / tmp / c l o s u r e _ 5 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 5 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1410 ,7 +1410 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e <= com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . I N F E R R E D _ F U N C T I O N ) {
+ r e t u r n " N o d e t r e e i n e q u a l i t y :" + + "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 13: "The generated patch for the bug Closure 5"
Number of tests that execute the patch: 8 Execution time: 1 minute, 51 seconds
2.5 Closure 7
- - - / tmp / c l o s u r e _ 7 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / t e s t i n g / A s s e r t s . j a v a +++ / tmp / c l o s u r e _ 7 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / t e s t i n g / A s s e r t s . j a v a
@@ -102 ,3 +102 ,3 @@
( a == n u l l) == ( b == n u l l) ) ;
- if ( a == n u l l ) {
+ if ( m e s s a g e != n u l l ) { r e t u r n;
Listing 14: "The generated patch for the bug Closure 7"
Number of tests that execute the patch: 358 Execution time: 3 minutes, 26 seconds
2.6 Closure 8
- - - / tmp / c l o s u r e _ 8 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 8 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1410 ,7 +1410 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e <= com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . I N F E R R E D _ F U N C T I O N ) {
+ r e t u r n " N o d e t r e e i n e q u a l i t y :" + + "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 15: "The generated patch for the bug Closure 8"
Number of tests that execute the patch: 8 Execution time: 2 minutes, 28 seconds
2.7 Closure 10
- - - / tmp / c l o s u r e _ 1 0 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 1 0 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1432 ,7 +1432 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e <= com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . Q U O T E D _ P R O P ) {
+ r e t u r n " N o d e t r e e i n e q u a l i t y :" + + "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 16: "The generated patch for the bug Closure 10"
Number of tests that execute the patch: 8 Execution time: 4 minutes, 28 seconds
2.8 Closure 12
- - - / tmp / c l o s u r e _ 1 2 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 1 2 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1432 ,7 +1432 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e <= com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . Q U O T E D _ P R O P ) {
+ r e t u r n " N o d e t r e e i n e q u a l i t y :" + + "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 17: "The generated patch for the bug Closure 12"
Number of tests that execute the patch: 8 Execution time: 7 minutes, 35 seconds
2.9 Closure 14
- - - / tmp / c l o s u r e _ 1 4 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / C o n t r o l F l o w A n a l y s i s . j a v a +++ / tmp / c l o s u r e _ 1 4 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / C o n t r o l F l o w A n a l y s i s . j a v a
@@ -663 ,3 +663 ,5 @@
} e l s e {
- f i n a l l y M a p . put ( l a s t J u m p , n u l l ) ;
+ if ( com . g o o g l e . j a v a s c r i p t . j s c o m p . C o n t r o l F l o w A n a l y s i s . t h i s . s h o u l d T r a v e r s e F u n c t i o n s ) { + f i n a l l y M a p . put ( l a s t J u m p , n u l l ) ;
+ }
}
Listing 18: "The generated patch for the bug Closure 14"
Number of tests that execute the patch: 7
Execution time: 3 minutes, 2 seconds
2.10 Closure 15
- - - / tmp / c l o s u r e _ 1 5 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 1 5 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1429 ,7 +1429 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ; + if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e < 32) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 19: "The generated patch for the bug Closure 15"
Number of tests that execute the patch: 8 Execution time: 7 minutes, 28 seconds
2.11 Closure 16
- - - / tmp / c l o s u r e _ 1 6 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 1 6 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1445 ,3 +1445 ,5 @@
if (! i s E q u i v a l e n t T o ( node2 , false, f a l s e) ) { - r e t u r n new N o d e M i s m a t c h ( this , n o d e 2 ) ;
+ if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . s o u r c e P o s i t i o n <= 1) { + r e t u r n new N o d e M i s m a t c h ( this , n o d e 2 ) ;
+ }
}
Listing 20: "The generated patch for the bug Closure 16"
Number of tests that execute the patch: 12 Execution time: 4 minutes, 12 seconds
2.12 Closure 17
- - - / tmp / c l o s u r e _ 1 7 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / T y p e d S c o p e C r e a t o r . j a v a +++ / tmp / c l o s u r e _ 1 7 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / T y p e d S c o p e C r e a t o r . j a v a
@@ -1294 ,3 +1294 ,5 @@
// t h e n we can s a f e l y use t h a t .
- r e t u r n r V a l u e . g e t J S T y p e () ;
+ if (!( com . g o o g l e . j a v a s c r i p t . j s c o m p . T y p e d S c o p e C r e a t o r . D E L E G A T E _ P R O X Y _ S U F F I X . l e n g t h () == -1 + com . g o o g l e . j a v a s c r i p t . j s c o m p . T y p e d S c o p e C r e a t o r . t h i s .
f u n c t i o n A n a l y s i s R e s u l t s . s i z e () ) ) {
+ r e t u r n r V a l u e . g e t J S T y p e () ;
+ }
} e l s e if ( r V a l u e . i s O r () ) {
Listing 21: "The generated patch for the bug Closure 17"
Number of tests that execute the patch: 25 Execution time: 2 minutes, 1 second
2.13 Closure 18
- - - / tmp / c l o s u r e _ 1 8 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 1 8 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1429 ,7 +1429 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e <= com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . I S _ D I S P A T C H E R ) {
+ r e t u r n " N o d e t r e e i n e q u a l i t y :" + + "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () +
+ "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 22: "The generated patch for the bug Closure 18"
Number of tests that execute the patch: 8 Execution time: 1 minute, 51 seconds
2.14 Closure 20
- - - / tmp / c l o s u r e _ 2 0 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 2 0 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1429 ,7 +1429 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ; + if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e < 32) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 23: "The generated patch for the bug Closure 20"
Number of tests that execute the patch: 8 Execution time: 2 minutes
2.15 Closure 21
- - - / tmp / c l o s u r e _ 2 1 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / C h e c k S i d e E f f e c t s . j a v a +++ / tmp / c l o s u r e _ 2 1 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / C h e c k S i d e E f f e c t s . j a v a
@@ -117 ,7 +117 ,9 @@
if ( n == p a r e n t . g e t L a s t C h i l d () ) {
- for ( N o d e an : p a r e n t . g e t A n c e s t o r s () ) { - int a n c e s t o r T y p e = an . g e t T y p e () ;
- if ( a n c e s t o r T y p e == T o k e n . C O M M A ) c o n t i n u e ;
- if ( a n c e s t o r T y p e != T o k e n . E X P R _ R E S U L T && a n c e s t o r T y p e != T o k e n . B L O C K ) r e t u r n ;
- e l s e b r e a k ;
+ if ( com . g o o g l e . j a v a s c r i p t . j s c o m p . C h e c k S i d e E f f e c t s . P R O T E C T O R _ F N . l e n g t h () = = 0 ) { + for ( N o d e an : p a r e n t . g e t A n c e s t o r s () ) {
+ int a n c e s t o r T y p e = an . g e t T y p e () ;
+ if ( a n c e s t o r T y p e == T o k e n . C O M M A ) c o n t i n u e ;
+ if ( a n c e s t o r T y p e != T o k e n . E X P R _ R E S U L T && a n c e s t o r T y p e != T o k e n . B L O C K ) r e t u r n ;
+ e l s e b r e a k ;
+ }
}
Listing 24: "The generated patch for the bug Closure 21"
Number of tests that execute the patch: 2 Execution time: 1 minute, 59 seconds
2.16 Closure 22
- - - / tmp / c l o s u r e _ 2 2 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / C h e c k S i d e E f f e c t s . j a v a +++ / tmp / c l o s u r e _ 2 2 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / C h e c k S i d e E f f e c t s . j a v a
@@ -115 ,6 +115 ,8 @@
c o n t i n u e;
- if ( a n c e s t o r T y p e != T o k e n . E X P R _ R E S U L T && a n c e s t o r T y p e != T o k e n . B L O C K )
+ if ( com . g o o g l e . j a v a s c r i p t . j s c o m p . C h e c k S i d e E f f e c t s . P R O T E C T O R _ F N . l e n g t h () = = 0 ) { + if ( a n c e s t o r T y p e != T o k e n . E X P R _ R E S U L T && a n c e s t o r T y p e != T o k e n . B L O C K )
r e t u r n;
- e l s e
+ e l s e
b r e a k;
+ }
}
Listing 25: "The generated patch for the bug Closure 22"
Number of tests that execute the patch: 3
Execution time: 2 minutes, 24 seconds
2.17 Closure 26
- - - / tmp / c l o s u r e _ 2 6 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 2 6 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1429 ,7 +1429 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if (( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e ) != ( n o d e 2 . t y p e ) ) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 26: "The generated patch for the bug Closure 26"
Number of tests that execute the patch: 14 Execution time: 3 minutes, 34 seconds
2.18 Closure 28
- - - / tmp / c l o s u r e _ 2 8 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 2 8 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1429 ,7 +1429 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ; + if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e < 32) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 27: "The generated patch for the bug Closure 28"
Number of tests that execute the patch: 8 Execution time: 1 minute, 55 seconds
2.19 Closure 29
- - - / tmp / c l o s u r e _ 2 9 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 2 9 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1429 ,7 +1429 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if (( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e ) != ( n o d e 2 . t y p e ) ) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 28: "The generated patch for the bug Closure 29"
Number of tests that execute the patch: 12 Execution time: 2 minutes
2.20 Closure 30
- - - / tmp / c l o s u r e _ 3 0 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 3 0 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1429 ,7 +1429 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ; + if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e < 32) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 29: "The generated patch for the bug Closure 30"
Number of tests that execute the patch: 5 Execution time: 1 minute, 45 seconds
2.21 Closure 31
- - - / tmp / c l o s u r e _ 3 1 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 3 1 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1429 ,7 +1429 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e <= com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . I S _ D I S P A T C H E R ) {
+ r e t u r n " N o d e t r e e i n e q u a l i t y :" + + "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 30: "The generated patch for the bug Closure 31"
Number of tests that execute the patch: 3 Execution time: 1 minute, 54 seconds
2.22 Closure 33
- - - / tmp / c l o s u r e _ 3 3 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / j s t y p e / P r o t o t y p e O b j e c t T y p e . j a v a +++ / tmp / c l o s u r e _ 3 3 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / j s t y p e / P r o t o t y p e O b j e c t T y p e . j a v a
@@ -572 ,4 +572 ,6 @@
if (! h a s P r o p e r t y ( p r o p ) ) {
- t y p e T o I n f e r = g e t N a t i v e T y p e ( J S T y p e N a t i v e . V O I D _ T Y P E ) - . g e t L e a s t S u p e r t y p e ( p r o p T y p e ) ;
+ if ( com . g o o g l e . j a v a s c r i p t . r h i n o . j s t y p e . P r o t o t y p e O b j e c t T y p e . t h i s . p r e t t y P r i n t ) { + t y p e T o I n f e r = g e t N a t i v e T y p e ( J S T y p e N a t i v e . V O I D _ T Y P E )
+ . g e t L e a s t S u p e r t y p e ( p r o p T y p e ) ;
+ }
}
Listing 31: "The generated patch for the bug Closure 33"
Number of tests that execute the patch: 8 Execution time: 1 minute, 52 seconds
2.23 Closure 35
- - - / tmp / c l o s u r e _ 3 5 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / j s t y p e / J S T y p e R e g i s t r y . j a v a +++ / tmp / c l o s u r e _ 3 5 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / j s t y p e / J S T y p e R e g i s t r y . j a v a
@@ -1654 ,8 + 1 6 5 4 , 1 0 @@
// Add the p r o p e r t y to the r e c o r d .
- if ( b u i l d e r . a d d P r o p e r t y ( f i e l d N a m e , f i e l d T y p e , f i e l d N a m e N o d e ) == n u l l ) { - // D u p l i c a t e f i e l d name , w a r n i n g and s k i p
- r e p o r t e r . w a r n i n g (
- " D u p l i c a t e r e c o r d f i e l d " + f i e l d N a m e ,
- s o u r c e N a m e ,
- n . g e t L i n e n o () , f i e l d N a m e N o d e . g e t C h a r n o () ) ;
+ if (( f i e l d N a m e . l e n g t h () ) != (5) ) {
+ if ( b u i l d e r . a d d P r o p e r t y ( f i e l d N a m e , f i e l d T y p e , f i e l d N a m e N o d e ) == n u l l ) { + // D u p l i c a t e f i e l d name , w a r n i n g and s k i p
+ r e p o r t e r . w a r n i n g (
+ " D u p l i c a t e r e c o r d f i e l d " + f i e l d N a m e ,
+ s o u r c e N a m e ,
+ n . g e t L i n e n o () , f i e l d N a m e N o d e . g e t C h a r n o () ) ;
+ }
}
Listing 32: "The generated patch for the bug Closure 35"
Number of tests that execute the patch: 26 Execution time: 2 minutes, 43 seconds
2.24 Closure 36
- - - / tmp / c l o s u r e _ 3 6 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 3 6 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1416 ,7 +1416 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e <= com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . I S _ D I S P A T C H E R ) {
+ r e t u r n " N o d e t r e e i n e q u a l i t y :" + + "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 33: "The generated patch for the bug Closure 36"
Number of tests that execute the patch: 3 Execution time: 1 minute, 48 seconds
2.25 Closure 38
- - - / tmp / c l o s u r e _ 3 8 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / C o d e C o n s u m e r . j a v a +++ / tmp / c l o s u r e _ 3 8 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / C o d e C o n s u m e r . j a v a
@@ -244 ,3 +244 ,3 @@
b o o l e a n n e g a t i v e Z e r o = i s N e g a t i v e Z e r o ( x ) ; - if ( x < 0 && p r e v == ’ - ’) {
+ if (( p r e v == ’ - ’) ) {
add ( " " ) ;
Listing 34: "The generated patch for the bug Closure 38"
Number of tests that execute the patch: 1665 Execution time: 3 minutes, 11 seconds
2.26 Closure 40
- - - / tmp / c l o s u r e _ 4 0 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 4 0 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1411 ,7 +1411 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ; + if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e < 32) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 35: "The generated patch for the bug Closure 40"
Number of tests that execute the patch: 3 Execution time: 2 minutes, 7 seconds
2.27 Closure 45
- - - / tmp / c l o s u r e _ 4 5 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 4 5 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1403 ,7 +1403 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ; + if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e < 32) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 36: "The generated patch for the bug Closure 45"
Number of tests that execute the patch: 3 Execution time: 1 minute, 41 seconds
2.28 Closure 49
- - - / tmp / c l o s u r e _ 4 9 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 4 9 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1566 ,7 +1566 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ; + if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e < 29) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 37: "The generated patch for the bug Closure 49"
Number of tests that execute the patch: 68 Execution time: 1 minute, 47 seconds
2.29 Closure 50
- - - / tmp / c l o s u r e _ 5 0 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 5 0 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1566 ,7 +1566 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e <= com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . L A B E L _ P R O P ) {
+ r e t u r n " N o d e t r e e i n e q u a l i t y :" + + "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 38: "The generated patch for the bug Closure 50"
Number of tests that execute the patch: 4 Execution time: 1 minute, 50 seconds
2.30 Closure 55
- - - / tmp / c l o s u r e _ 5 5 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / F u n c t i o n R e w r i t e r . j a v a +++ / tmp / c l o s u r e _ 5 5 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / F u n c t i o n R e w r i t e r . j a v a
@@ -92 ,10 +92 ,12 @@
// r e d u c t i o n s if d o i n g so w i l l r e s u l t in s o m e s a v i n g s . - if ( s a v i n g s > ( h e l p e r C o d e C o s t + S A V I N G S _ T H R E S H O L D ) ) { - for ( R e d u c t i o n r e d u c t i o n : r e d u c t i o n s ) {
- r e d u c t i o n . a p p l y () ;
+ if ( ( ( 1 ) != ( r e d u c t i o n s . s i z e () ) ) && (!( r e d u c e r s . s i z e () < r e d u c t i o n s . s i z e () ) ) ) { + if ( s a v i n g s > ( h e l p e r C o d e C o s t + S A V I N G S _ T H R E S H O L D ) ) {
+ for ( R e d u c t i o n r e d u c t i o n : r e d u c t i o n s ) {
+ r e d u c t i o n . a p p l y () ;
+ }
+
+ N o d e a d d i n g R o o t = c o m p i l e r . g e t N o d e F o r C o d e I n s e r t i o n ( n u l l ) ; + a d d i n g R o o t . a d d C h i l d r e n T o F r o n t ( h e l p e r C o d e ) ;
+ c o m p i l e r . r e p o r t C o d e C h a n g e () ; }
-
- N o d e a d d i n g R o o t = c o m p i l e r . g e t N o d e F o r C o d e I n s e r t i o n ( n u l l ) ; - a d d i n g R o o t . a d d C h i l d r e n T o F r o n t ( h e l p e r C o d e ) ;
- c o m p i l e r . r e p o r t C o d e C h a n g e () ; }
Listing 39: "The generated patch for the bug Closure 55"
Number of tests that execute the patch: 11 Execution time: 2 minutes, 14 seconds
2.31 Closure 60
- - - / tmp / c l o s u r e _ 6 0 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / P e e p h o l e S u b s t i t u t e A l t e r n a t e S y n t a x . j a v a
+++ / tmp / c l o s u r e _ 6 0 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / P e e p h o l e S u b s t i t u t e A l t e r n a t e S y n t a x . j a v a
@@ -1196 ,3 +1196 ,5 @@
if (! n e w N o d e . i s E q u i v a l e n t T o ( n ) ) { - p a r e n t . r e p l a c e C h i l d ( n , n e w N o d e ) ;
+ if ( com . g o o g l e . j a v a s c r i p t . j s c o m p . P e e p h o l e S u b s t i t u t e A l t e r n a t e S y n t a x . t h i s . l a t e ) { + p a r e n t . r e p l a c e C h i l d ( n , n e w N o d e ) ;
+ }
r e p o r t C o d e C h a n g e () ;
Listing 40: "The generated patch for the bug Closure 60"
Number of tests that execute the patch: 31 Execution time: 12 minutes, 12 seconds
2.32 Closure 61
- - - / tmp / c l o s u r e _ 6 1 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 6 1 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1460 ,7 +1460 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if (( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e ) != ( n o d e 2 . t y p e ) ) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 41: "The generated patch for the bug Closure 61"
Number of tests that execute the patch: 4 Execution time: 1 minute, 39 seconds
2.33 Closure 62
- - - / tmp / c l o s u r e _ 6 2 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / L i g h t w e i g h t M e s s a g e F o r m a t t e r . j a v a +++ / tmp / c l o s u r e _ 6 2 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / L i g h t w e i g h t M e s s a g e F o r m a t t e r . j a v a
@@ -96 ,4 +96 ,3 @@
// at the end of the l i n e - if ( e x c e r p t . e q u a l s ( L I N E )
- && 0 <= c h a r n o && c h a r n o < s o u r c e E x c e r p t . l e n g t h () ) {
+ if ( e r r o r != n u l l ) {
for (int i = 0; i < c h a r n o ; i ++) {
Listing 42: "The generated patch for the bug Closure 62"
Number of tests that execute the patch: 5 Execution time: 1 minute, 32 seconds
2.34 Closure 63
- - - / tmp / c l o s u r e _ 6 3 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / L i g h t w e i g h t M e s s a g e F o r m a t t e r . j a v a +++ / tmp / c l o s u r e _ 6 3 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / L i g h t w e i g h t M e s s a g e F o r m a t t e r . j a v a
@@ -96 ,4 +96 ,3 @@
// at the end of the l i n e - if ( e x c e r p t . e q u a l s ( L I N E )
- && 0 <= c h a r n o && c h a r n o < s o u r c e E x c e r p t . l e n g t h () ) { + if ( e r r o r != n u l l ) {
for (int i = 0; i < c h a r n o ; i ++) {
Listing 43: "The generated patch for the bug Closure 63"
Number of tests that execute the patch: 5 Execution time: 1 minute, 31 seconds
2.35 Closure 66
- - - / tmp / c l o s u r e _ 6 6 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / T y p e C h e c k . j a v a +++ / tmp / c l o s u r e _ 6 6 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / T y p e C h e c k . j a v a
@@ -821 ,3 +821 ,5 @@
if ( t y p e == n u l l) { - n u l l C o u n t ++;
+ if ( com . g o o g l e . j a v a s c r i p t . j s c o m p . T y p e C h e c k . t h i s . i n E x t e r n s ) {
+ n u l l C o u n t ++;
+ }
} e l s e if ( t y p e . i s U n k n o w n T y p e () ) {
Listing 44: "The generated patch for the bug Closure 66"
Number of tests that execute the patch: 166 Execution time: 2 minutes, 21 seconds
2.36 Closure 67
- - - / tmp / c l o s u r e _ 6 7 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 6 7 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1384 ,7 +1384 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if (( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e ) != ( n o d e 2 . t y p e ) ) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 45: "The generated patch for the bug Closure 67"
Number of tests that execute the patch: 2 Execution time: 1 minute, 37 seconds
2.37 Closure 72
- - - / tmp / c l o s u r e _ 7 2 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 7 2 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1381 ,7 +1381 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if (( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . t y p e ) != ( n o d e 2 . t y p e ) ) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 46: "The generated patch for the bug Closure 72"
Number of tests that execute the patch: 2 Execution time: 1 minute, 32 seconds
2.38 Closure 75
- - - / tmp / c l o s u r e _ 7 5 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 7 5 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1410 ,3 +1410 ,5 @@
}
- res = n . c h e c k T r e e E q u a l s I m p l ( n2 ) ;
+ if ( com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . P R O P E R T Y _ F L A G == com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . t h i s . f i r s t . g e t T y p e () ) {
+ res = n . c h e c k T r e e E q u a l s I m p l ( n2 ) ;
+ }
if ( res != n u l l) {
Listing 47: "The generated patch for the bug Closure 75"
Number of tests that execute the patch: 3164 Execution time: 24 minutes, 1 second
2.39 Closure 76
- - - / tmp / c l o s u r e _ 7 6 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 7 6 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1368 ,7 +1368 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if ( n o d e 2 . t y p e < com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . F U N C T I O N _ P R O P ) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 48: "The generated patch for the bug Closure 76"
Number of tests that execute the patch: 5 Execution time: 1 minute, 30 seconds
2.40 Closure 78
- - - / tmp / c l o s u r e _ 7 8 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / P e e p h o l e F o l d C o n s t a n t s . j a v a +++ / tmp / c l o s u r e _ 7 8 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / P e e p h o l e F o l d C o n s t a n t s . j a v a
@@ -717 ,3 +717 ,5 @@
if ( r v a l == 0) {
- e r r o r ( D i a g n o s t i c T y p e . e r r o r (" J S C _ D I V I D E _ B Y _ 0 _ E R R O R " , " D i v i d e by 0") , r i g h t ) ;
+ if (53 == 0) {
+ e r r o r ( D i a g n o s t i c T y p e . e r r o r (" J S C _ D I V I D E _ B Y _ 0 _ E R R O R " , " D i v i d e by 0") , r i g h t ) ;
+ }
r e t u r n n u l l;
Listing 49: "The generated patch for the bug Closure 78"
Number of tests that execute the patch: 1 Execution time: 1 minute, 25 seconds
2.41 Closure 111
- - - / tmp / c l o s u r e _ 1 1 1 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / t e s t i n g / A s s e r t s . j a v a +++ / tmp / c l o s u r e _ 1 1 1 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / t e s t i n g / A s s e r t s . j a v a
@@ -102 ,3 +102 ,3 @@
( a == n u l l) == ( b == n u l l) ) ;
- if ( a == n u l l ) {
+ if ( m e s s a g e != n u l l ) { r e t u r n;
Listing 50: "The generated patch for the bug Closure 111"
Number of tests that execute the patch: 381 Execution time: 2 minutes, 49 seconds
2.42 Closure 113
- - - / tmp / c l o s u r e _ 1 1 3 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / P r o c e s s C l o s u r e P r i m i t i v e s . j a v a +++ / tmp / c l o s u r e _ 1 1 3 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / P r o c e s s C l o s u r e P r i m i t i v e s . j a v a
@@ -328 ,3 +328 ,3 @@
// let t h e m be c a u g h t in the s u b s e q u e n t run . - if ( p r o v i d e d != n u l l ) {
+ if (( p r o v i d e d != n u l l ) || (!( ns . l e n g t h () < 10) ) ) { p a r e n t . d e t a c h F r o m P a r e n t () ;
Listing 51: "The generated patch for the bug Closure 113"
Number of tests that execute the patch: 26 Execution time: 2 minutes, 22 seconds
2.43 Closure 114
- - - / tmp / c l o s u r e _ 1 1 4 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 1 1 4 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1429 ,7 +1429 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if ( n o d e 2 . t y p e < com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . J S D O C _ I N F O _ P R O P ) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 52: "The generated patch for the bug Closure 114"
Number of tests that execute the patch: 8 Execution time: 2 minutes, 14 seconds
2.44 Closure 115
- - - / tmp / c l o s u r e _ 1 1 5 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 1 1 5 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1429 ,7 +1429 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if ( n o d e 2 . t y p e < com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . J S D O C _ I N F O _ P R O P ) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 53: "The generated patch for the bug Closure 115"
Number of tests that execute the patch: 14 Execution time: 2 minutes, 18 seconds
2.45 Closure 116
- - - / tmp / c l o s u r e _ 1 1 6 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 1 1 6 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1429 ,7 +1429 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if ( n o d e 2 . t y p e < com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . J S D O C _ I N F O _ P R O P ) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 54: "The generated patch for the bug Closure 116"
Number of tests that execute the patch: 13 Execution time: 2 minutes, 13 seconds
2.46 Closure 119
- - - / tmp / c l o s u r e _ 1 1 9 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / G l o b a l N a m e s p a c e . j a v a +++ / tmp / c l o s u r e _ 1 1 9 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / j s c o m p / G l o b a l N a m e s p a c e . j a v a
@@ -690 ,3 +690 ,5 @@
- h a n d l e G e t ( module , scope , n , parent , name , t y p e ) ;
+ if ((( com . g o o g l e . j a v a s c r i p t . j s c o m p . G l o b a l N a m e s p a c e . t h i s . e x t e r n s R o o t != n u l l ) && (( -1) !=
( ( 2 ) - ( com . g o o g l e . j a v a s c r i p t . j s c o m p . G l o b a l N a m e s p a c e . t h i s . g l o b a l N a m e s . s i z e () ) ) ) ) || (!( com . g o o g l e . j a v a s c r i p t . j s c o m p . G l o b a l N a m e s p a c e . t h i s . e x t e r n s S c o p e != n u l l ) ) ) {
+ h a n d l e G e t ( module , scope , n , parent , name , t y p e ) ;
+ }
}
Listing 55: "The generated patch for the bug Closure 119"
Number of tests that execute the patch: 394 Execution time: 32 minutes, 2 seconds
2.47 Closure 120
- - - / tmp / c l o s u r e _ 1 2 0 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 1 2 0 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1429 ,7 +1429 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if ( n o d e 2 . t y p e < com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . J S D O C _ I N F O _ P R O P ) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ }
}
Listing 56: "The generated patch for the bug Closure 120"
Number of tests that execute the patch: 8 Execution time: 2 minutes, 11 seconds
2.48 Closure 121
- - - / tmp / c l o s u r e _ 1 2 1 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a +++ / tmp / c l o s u r e _ 1 2 1 _ N o p o l / src / com / g o o g l e / j a v a s c r i p t / r h i n o / N o d e . j a v a
@@ -1429 ,7 +1429 ,9 @@
if ( d i f f != n u l l) {
- r e t u r n " N o d e t r e e i n e q u a l i t y :" + - "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
- "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + - "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;
+ if ( n o d e 2 . t y p e < com . g o o g l e . j a v a s c r i p t . r h i n o . N o d e . J S D O C _ I N F O _ P R O P ) { + r e t u r n " N o d e t r e e i n e q u a l i t y :" +
+ "\ n T r e e 1 :\ n " + t o S t r i n g T r e e () +
+ "\ n \ n T r e e 2 :\ n " + n o d e 2 . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 1 : " + d i f f . n o d e A . t o S t r i n g T r e e () + + "\ n \ n S u b t r e e 2 : " + d i f f . n o d e B . t o S t r i n g T r e e () ;