@@ -48,6 +48,35 @@ class p5 {
4848 static _friendlyFileLoadError = ( ) => { } ;
4949
5050 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+
5180 //////////////////////////////////////////////
5281 // PRIVATE p5 PROPERTIES AND METHODS
5382 //////////////////////////////////////////////
@@ -744,38 +773,4 @@ p5.registerAddon(renderer);
744773p5 . registerAddon ( renderer2D ) ;
745774p5 . registerAddon ( graphics ) ;
746775
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