Closed iccir closed 5 years ago
Removed - selectors and class symbols are now strings rather than { foo:1 }
.
Note: this went a bit too far. @selector
should lay down an opaque type for type-checking, rather than a string. We do not want to allow:
nilscript.msgSend(target, "ArbitraryString")
Fixed in 3b2e79da2f290e2d602157b97826fb5020ef8815
Back in the oj 0.x days, we were using Google's Closure Compiler with
ADVANCED_OPTIMIZATIONS
turned on. One of our requirements for oj (and why we couldn't use Objective-J) was consistent property names. This was before the squeezer, and before we moved to UglifyJS.This requirement hasn't been checked or enforced in years. Moving forward, we should think if this is something we still want to support.
Even if the NilScript compiler doesn't use consistent property names, it's possible to provide a list of all
N$
-prefixed identifiers and prevent Closure from renaming them:--output-symbols
compiler option--extern
option