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
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.