@@ -48,6 +48,35 @@ class p5 {
48
48
static _friendlyFileLoadError = ( ) => { } ;
49
49
50
50
constructor ( sketch , node ) {
51
+ // Apply addon defined decorations
52
+ if ( p5 . decorations . size > 0 ) {
53
+ for ( const [ patternArray , decoration ] of p5 . decorations ) {
54
+ for ( const member in p5 . prototype ) {
55
+ // Member must be a function
56
+ if ( typeof p5 . prototype [ member ] !== 'function' ) continue ;
57
+
58
+ if ( ! patternArray . some ( pattern => {
59
+ if ( typeof pattern === 'string' ) {
60
+ return pattern === member ;
61
+ } else if ( pattern instanceof RegExp ) {
62
+ return pattern . test ( member ) ;
63
+ }
64
+ } ) ) continue ;
65
+
66
+ p5 . prototype [ member ] = decoration ( p5 . prototype [ member ] , {
67
+ kind : 'method' ,
68
+ name : member ,
69
+ access : { } ,
70
+ static : false ,
71
+ private : false ,
72
+ addInitializer ( initializer ) { }
73
+ } ) ;
74
+ }
75
+ }
76
+
77
+ p5 . decorations . clear ( ) ;
78
+ }
79
+
51
80
//////////////////////////////////////////////
52
81
// PRIVATE p5 PROPERTIES AND METHODS
53
82
//////////////////////////////////////////////
@@ -744,38 +773,4 @@ p5.registerAddon(renderer);
744
773
p5 . registerAddon ( renderer2D ) ;
745
774
p5 . registerAddon ( graphics ) ;
746
775
747
- const p5Proxy = new Proxy ( p5 , {
748
- construct ( target , args ) {
749
- if ( p5 . decorations . size > 0 ) {
750
- // Apply addon defined decorations
751
- for ( const [ patternArray , decoration ] of p5 . decorations ) {
752
- for ( const member in p5 . prototype ) {
753
- // Member must be a function
754
- if ( typeof p5 . prototype [ member ] !== 'function' ) continue ;
755
-
756
- if ( ! patternArray . some ( pattern => {
757
- if ( typeof pattern === 'string' ) {
758
- return pattern === member ;
759
- } else if ( pattern instanceof RegExp ) {
760
- return pattern . test ( member ) ;
761
- }
762
- } ) ) continue ;
763
-
764
- p5 . prototype [ member ] = decoration ( p5 . prototype [ member ] , {
765
- kind : 'method' ,
766
- name : member ,
767
- access : { } ,
768
- static : false ,
769
- private : false ,
770
- addInitializer ( initializer ) { }
771
- } ) ;
772
- }
773
- }
774
-
775
- p5 . decorations . clear ( ) ;
776
- }
777
- return new target ( ...args ) ;
778
- }
779
- } ) ;
780
-
781
- export default p5Proxy ;
776
+ export default p5 ;
0 commit comments