|
@@ -388,8 +388,10 @@ define(function () {
|
|
}
|
|
}
|
|
|
|
|
|
function SelectorConversionBrik (brikz, st) {
|
|
function SelectorConversionBrik (brikz, st) {
|
|
|
|
+ var st2jsMemo = Object.create(null);
|
|
|
|
+
|
|
/* Convert a Smalltalk selector into a JS selector */
|
|
/* Convert a Smalltalk selector into a JS selector */
|
|
- st.st2js = this.st2js = function (string) {
|
|
|
|
|
|
+ function st2js (string) {
|
|
return '_' + string
|
|
return '_' + string
|
|
.replace(/:/g, '_')
|
|
.replace(/:/g, '_')
|
|
.replace(/[\&]/g, '_and')
|
|
.replace(/[\&]/g, '_and')
|
|
@@ -408,6 +410,14 @@ define(function () {
|
|
.replace(/[@]/g, '_at');
|
|
.replace(/[@]/g, '_at');
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ st.st2js = function (stSelector) {
|
|
|
|
+ return st2jsMemo[stSelector] || st2js(stSelector);
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ this.st2js = function (stSelector) {
|
|
|
|
+ return st2jsMemo[stSelector] || (st2jsMemo[stSelector] = st2js(stSelector));
|
|
|
|
+ };
|
|
|
|
+
|
|
/* Convert a string to a valid smalltalk selector.
|
|
/* Convert a string to a valid smalltalk selector.
|
|
if you modify the following functions, also change st2js
|
|
if you modify the following functions, also change st2js
|
|
accordingly */
|
|
accordingly */
|