cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Choose Language Hide Translation Bar
djhanson
Level V

names default to here - errors with JSL encryption

Hi, I have a "names default to here(1)" in a main JSL script that does some later "include" on some downstream JSL scripts.  Some of these downstream JSL's are encrypted for view only.

When I run the main JSL script, it errors out:
"Name Unresolved: <encrypted>{13} in access or evaluation of '<encrypted>' , "<encrypted>" /*###*/"

Is this a bug? (JMP 14.3.0)
Why should it quit on an encrypted script?  I certainly don't want to unencrypt the other JSL scripts on account of using this command.  Else, is there a way around this perhaps?  I have 100's of globals so was hoping to avoid a specific name space for each one.

thanks!  DJ

1 REPLY 1
txnelson
Super User

Re: names default to here - errors with JSL encryption

This is just a guess, but what you may be running into could be a scoping error.  When one uses

Names Default To Here( 1 );

JMP literally creates a names space called Here and converts all unscoped variables from 

     

Variable Name = 1;

to

   

Here:Variable Name = 1;

The scoping issue can come up with a grandfathered scoping syntax.

JSL that previously did not have the Names Default to Here(1) specified, the following assignment statements were equivalent

Y=1;
::Y=9;
Show(Y, ::Y);

.The results of this JSL is:

Y = 9;
Y = 9;

 However, with the Names Default to Here(1) specified

Names Default To Here( 1 );
Y = 1;
::Y = 9;
Show( Y, ::Y, here:Y );

gives the results

Y = 1;
Y = 9;
here:Y = 1;

All of my rambling on this topic leads me to a guess that somewhere is your encrypted code, a double colon, "::" scoping has been specified, and then referenced without the double colon being specified.  With the Names Default to Here(1) specified, the reference with out the double colon will produce a variable name that JSL has not seen before, and will throw an exception error.

Jim