Page 1 of 1

[Solved] Module ReferenceError

Posted: Fri Apr 07, 2017 10:12 pm
by falsam
I code a module that communicates with a JavaScript code. I think the module's declaration is good.

I have located the error in my code and tried to reproduce it with this code snippet. (Console on)

Code: Select all

EnableExplicit

DeclareModule fake 
  Global foo.i = 100
    
  Declare Dummy()
EndDeclareModule

Module fake 
  Procedure Dummy()
    ! v_foo ++
    ! console.log(v_foo);
  EndProcedure 
EndModule

UseModule fake

fake::Dummy()
In my opinion, it looks like a bug or .... (And NO ! This is not a bug)

Thanks for your help.

Re: Module ReferenceError

Posted: Fri Apr 07, 2017 11:00 pm
by falsam
Another code

Code: Select all

EnableExplicit

DeclareModule fake 
  Global foo.i = 100
    
  Declare Dummy()
  Declare Result()
EndDeclareModule

Module fake 
  Procedure Dummy()
    ! v_foo = 200;
    ! console.log(v_foo);
  EndProcedure 
  
  Procedure Result()
    ProcedureReturn foo
  EndProcedure  
EndModule

UseModule fake

fake::Dummy()

Debug fake::Result()
No JavaScript error but false result.

Re: Module ReferenceError

Posted: Sat Apr 08, 2017 7:05 am
by Fred
module variable needs to be prefixed:

Code: Select all

EnableExplicit

DeclareModule fake
  Global foo.i = 100
   
  Declare Dummy()
  Declare Result()
EndDeclareModule

Module fake
  Procedure Dummy()
    ! fake$v_foo = 200;
    ! console.log(fake$v_foo);
  EndProcedure
 
  Procedure Result()
    ProcedureReturn foo
  EndProcedure 
EndModule

UseModule fake

fake::Dummy()

Debug fake::Result()
You can take a look to spiderbasic.js to see how it is declared if you are mixing JS with SB code and it doesn't work.

Re: Module ReferenceError

Posted: Sat Apr 08, 2017 9:04 am
by falsam
Thanks Fred for this quick reply. My module works.