|
@@ -675,17 +675,6 @@ function InstanceBrik(brikz, st) {
|
|
|
this.jQuery.allowJavaScriptCalls = true;
|
|
|
}
|
|
|
|
|
|
- /*
|
|
|
- * Answer the smalltalk representation of o.
|
|
|
- * Used in message sends
|
|
|
- */
|
|
|
-
|
|
|
- this._st = function (o) {
|
|
|
- if(o == null) {return nil;}
|
|
|
- if(o.klass) {return o;}
|
|
|
- return st.JSObjectProxy._on_(o);
|
|
|
- };
|
|
|
-
|
|
|
}
|
|
|
|
|
|
function PrimitivesBrik(brikz, st) {
|
|
@@ -734,6 +723,52 @@ function PrimitivesBrik(brikz, st) {
|
|
|
|
|
|
function RuntimeBrik(brikz, st) {
|
|
|
|
|
|
+ function SmalltalkMethodContext(home, setup) {
|
|
|
+ this.homeContext = home;
|
|
|
+ this.setup = setup || function() {};
|
|
|
+ this.pc = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+// Fallbacks
|
|
|
+ SmalltalkMethodContext.prototype.locals = {};
|
|
|
+ SmalltalkMethodContext.prototype.receiver = null;
|
|
|
+ SmalltalkMethodContext.prototype.selector = null;
|
|
|
+ SmalltalkMethodContext.prototype.lookupClass = null;
|
|
|
+
|
|
|
+ inherits(SmalltalkMethodContext, SmalltalkObject);
|
|
|
+ this.MethodContext = SmalltalkMethodContext;
|
|
|
+
|
|
|
+ SmalltalkMethodContext.prototype.fill = function(receiver, selector, locals, lookupClass) {
|
|
|
+ this.receiver = receiver;
|
|
|
+ this.selector = selector;
|
|
|
+ this.locals = locals || {};
|
|
|
+ this.lookupClass = lookupClass;
|
|
|
+ };
|
|
|
+
|
|
|
+ SmalltalkMethodContext.prototype.fillBlock = function(locals, ctx) {
|
|
|
+ this.locals = locals || {};
|
|
|
+ this.outerContext = ctx;
|
|
|
+ };
|
|
|
+
|
|
|
+ SmalltalkMethodContext.prototype.init = function() {
|
|
|
+ var home = this.homeContext;
|
|
|
+ if(home) {
|
|
|
+ home = home.init();
|
|
|
+ }
|
|
|
+
|
|
|
+ this.setup(this);
|
|
|
+ };
|
|
|
+
|
|
|
+ SmalltalkMethodContext.prototype.method = function() {
|
|
|
+ var method;
|
|
|
+ var lookup = this.lookupClass || this.receiver.klass;
|
|
|
+ while(!method && lookup) {
|
|
|
+ method = lookup.methods[smalltalk.convertSelector(this.selector)];
|
|
|
+ lookup = lookup.superclass;
|
|
|
+ }
|
|
|
+ return method;
|
|
|
+ };
|
|
|
+
|
|
|
/* This is the current call context object. While it is publicly available,
|
|
|
Use smalltalk.getThisContext() instead which will answer a safe copy of
|
|
|
the current context */
|
|
@@ -799,6 +834,17 @@ function RuntimeBrik(brikz, st) {
|
|
|
st.thisContext = context.homeContext;
|
|
|
}
|
|
|
|
|
|
+ /*
|
|
|
+ * Answer the smalltalk representation of o.
|
|
|
+ * Used in message sends
|
|
|
+ */
|
|
|
+
|
|
|
+ this._st = function (o) {
|
|
|
+ if(o == null) {return nil;}
|
|
|
+ if(o.klass) {return o;}
|
|
|
+ return st.JSObjectProxy._on_(o);
|
|
|
+ };
|
|
|
+
|
|
|
}
|
|
|
|
|
|
function MessageSendBrik(brikz, st) {
|
|
@@ -931,20 +977,6 @@ function SelectorConversionBrik(brikz, st) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-function SmalltalkMethodContext(home, setup) {
|
|
|
- this.homeContext = home;
|
|
|
- this.setup = setup || function() {};
|
|
|
- this.pc = 0;
|
|
|
-}
|
|
|
-
|
|
|
-// Fallbacks
|
|
|
-SmalltalkMethodContext.prototype.locals = {};
|
|
|
-SmalltalkMethodContext.prototype.receiver = null;
|
|
|
-SmalltalkMethodContext.prototype.selector = null;
|
|
|
-SmalltalkMethodContext.prototype.lookupClass = null;
|
|
|
-
|
|
|
-inherits(SmalltalkMethodContext, SmalltalkObject);
|
|
|
-
|
|
|
brikz.dnu = DNUBrik;
|
|
|
brikz.messageSend = MessageSendBrik;
|
|
|
brikz.organize = OrganizeBrik;
|
|
@@ -961,37 +993,6 @@ brikz.rebuild();
|
|
|
|
|
|
var smalltalk = api;
|
|
|
|
|
|
-SmalltalkMethodContext.prototype.fill = function(receiver, selector, locals, lookupClass) {
|
|
|
- this.receiver = receiver;
|
|
|
- this.selector = selector;
|
|
|
- this.locals = locals || {};
|
|
|
- this.lookupClass = lookupClass;
|
|
|
-};
|
|
|
-
|
|
|
-SmalltalkMethodContext.prototype.fillBlock = function(locals, ctx) {
|
|
|
- this.locals = locals || {};
|
|
|
- this.outerContext = ctx;
|
|
|
-};
|
|
|
-
|
|
|
-SmalltalkMethodContext.prototype.init = function() {
|
|
|
- var home = this.homeContext;
|
|
|
- if(home) {
|
|
|
- home = home.init();
|
|
|
- }
|
|
|
-
|
|
|
- this.setup(this);
|
|
|
-};
|
|
|
-
|
|
|
-SmalltalkMethodContext.prototype.method = function() {
|
|
|
- var method;
|
|
|
- var lookup = this.lookupClass || this.receiver.klass;
|
|
|
- while(!method && lookup) {
|
|
|
- method = lookup.methods[smalltalk.convertSelector(this.selector)];
|
|
|
- lookup = lookup.superclass;
|
|
|
- }
|
|
|
- return method;
|
|
|
-};
|
|
|
-
|
|
|
/***************************************** BOOTSTRAP ******************************************/
|
|
|
|
|
|
smalltalk.wrapClassName("Object", "Kernel-Objects", SmalltalkObject, undefined, false);
|
|
@@ -1025,7 +1026,7 @@ smalltalk.wrapClassName("Array", "Kernel-Collections", Array, smalltalk.Sequence
|
|
|
smalltalk.wrapClassName("RegularExpression", "Kernel-Collections", RegExp, smalltalk.Object);
|
|
|
|
|
|
smalltalk.wrapClassName("Error", "Kernel-Exceptions", Error, smalltalk.Object);
|
|
|
-smalltalk.wrapClassName("MethodContext", "Kernel-Methods", SmalltalkMethodContext, smalltalk.Object, false);
|
|
|
+smalltalk.wrapClassName("MethodContext", "Kernel-Methods", brikz.runtime.MethodContext, smalltalk.Object, false);
|
|
|
|
|
|
/* Alias definitions */
|
|
|
|
|
@@ -1034,6 +1035,6 @@ smalltalk.alias(smalltalk.Date, "Time");
|
|
|
|
|
|
global_smalltalk = api;
|
|
|
global_nil = nil;
|
|
|
-global__st = brikz.instance._st;
|
|
|
+global__st = brikz.runtime._st;
|
|
|
|
|
|
})();
|