|
@@ -1,6 +1,6 @@
|
|
|
#!/usr/bin/env node
|
|
|
(function(define, require){
|
|
|
-define('__wrap__', function (requirejs) {
|
|
|
+define(function (requirejs) {
|
|
|
var module = void 0; // Bad UMDs workaround
|
|
|
requirejs.resolve = require.resolve;
|
|
|
require = requirejs;
|
|
@@ -1863,6 +1863,7 @@ define('amber/kernel-language',[],function () {
|
|
|
// Effective superclass of all classes created with `nil subclass: ...`.
|
|
|
var nilAsClass = this.nilAsClass = {
|
|
|
fn: SmalltalkRoot,
|
|
|
+ subclasses: [],
|
|
|
a$cls: {fn: SmalltalkClass}
|
|
|
};
|
|
|
|
|
@@ -1937,9 +1938,8 @@ define('amber/kernel-language',[],function () {
|
|
|
});
|
|
|
|
|
|
this.bootstrapHierarchy = function () {
|
|
|
- var nilSubclasses = [globals.ProtoObject];
|
|
|
nilAsClass.a$cls = globals.Class;
|
|
|
- nilSubclasses.forEach(function (each) {
|
|
|
+ nilAsClass.subclasses.forEach(function (each) {
|
|
|
each.a$cls.superclass = globals.Class;
|
|
|
addSubclass(each.a$cls);
|
|
|
});
|
|
@@ -2028,15 +2028,11 @@ define('amber/kernel-language',[],function () {
|
|
|
st.removeClass = removeTraitOrClass;
|
|
|
|
|
|
function addSubclass (klass) {
|
|
|
- if (klass.superclass) {
|
|
|
- addElement(klass.superclass.subclasses, klass);
|
|
|
- }
|
|
|
+ addElement((klass.superclass || nilAsClass).subclasses, klass);
|
|
|
}
|
|
|
|
|
|
function removeSubclass (klass) {
|
|
|
- if (klass.superclass) {
|
|
|
- removeElement(klass.superclass.subclasses, klass);
|
|
|
- }
|
|
|
+ removeElement((klass.superclass || nilAsClass).subclasses, klass);
|
|
|
}
|
|
|
|
|
|
function metaSubclasses (metaclass) {
|
|
@@ -2170,21 +2166,29 @@ define('amber/kernel-runtime',[],function () {
|
|
|
if (!traitOrClass.trait) initClassAndMetaclass(traitOrClass);
|
|
|
});
|
|
|
|
|
|
- emit.classAdded = function (klass) {
|
|
|
- initClassAndMetaclass(klass);
|
|
|
- klass._enterOrganization();
|
|
|
- };
|
|
|
+ function installStHooks () {
|
|
|
+ emit.classAdded = function (klass) {
|
|
|
+ initClassAndMetaclass(klass);
|
|
|
+ klass._enterOrganization();
|
|
|
+ };
|
|
|
|
|
|
- emit.traitAdded = function (trait) {
|
|
|
- trait._enterOrganization();
|
|
|
- };
|
|
|
+ emit.traitAdded = function (trait) {
|
|
|
+ trait._enterOrganization();
|
|
|
+ };
|
|
|
|
|
|
- emit.classRemoved = function (klass) {
|
|
|
- klass._leaveOrganization();
|
|
|
- };
|
|
|
+ emit.classRemoved = function (klass) {
|
|
|
+ klass._leaveOrganization();
|
|
|
+ };
|
|
|
|
|
|
- emit.traitRemoved = function (trait) {
|
|
|
- trait._leaveOrganization();
|
|
|
+ emit.traitRemoved = function (trait) {
|
|
|
+ trait._leaveOrganization();
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ this.installStHooks = installStHooks;
|
|
|
+
|
|
|
+ emit.classAdded = function (klass) {
|
|
|
+ initClassAndMetaclass(klass);
|
|
|
};
|
|
|
|
|
|
function initClass (klass) {
|
|
@@ -2272,9 +2276,13 @@ define('amber/kernel-runtime',[],function () {
|
|
|
propagateMethodChange(klass, method, null);
|
|
|
};
|
|
|
|
|
|
- emit.methodReplaced = function (newMethod, oldMethod, traitOrBehavior) {
|
|
|
- traitOrBehavior._methodOrganizationEnter_andLeave_(newMethod, oldMethod);
|
|
|
- };
|
|
|
+ function installStHooks () {
|
|
|
+ emit.methodReplaced = function (newMethod, oldMethod, traitOrBehavior) {
|
|
|
+ traitOrBehavior._methodOrganizationEnter_andLeave_(newMethod, oldMethod);
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ this.installStHooks = installStHooks;
|
|
|
|
|
|
function propagateMethodChange (klass, method, exclude) {
|
|
|
var selector = method.selector;
|
|
@@ -2529,11 +2537,13 @@ define('amber/kernel-runtime',[],function () {
|
|
|
};
|
|
|
}
|
|
|
|
|
|
- StartImageBrik.deps = ["smalltalkGlobals"];
|
|
|
+ StartImageBrik.deps = ["smalltalkGlobals", "runtimeClasses", "runtimeMethods"];
|
|
|
function StartImageBrik (brikz, st) {
|
|
|
var globals = brikz.smalltalkGlobals.globals;
|
|
|
|
|
|
this.run = function () {
|
|
|
+ brikz.runtimeClasses.installStHooks();
|
|
|
+ brikz.runtimeMethods.installStHooks();
|
|
|
return globals.AmberBootstrapInitialization._run();
|
|
|
};
|
|
|
}
|
|
@@ -28751,7 +28761,7 @@ var self=this,$self=this;
|
|
|
return $core.withContext(function($ctx1) {
|
|
|
|
|
|
var js = $self.jsObject;
|
|
|
- return js.toString
|
|
|
+ return !js ? "<<malformed JS object proxy>>" : js.toString
|
|
|
? js.toString()
|
|
|
: Object.prototype.toString.call(js)
|
|
|
;
|
|
@@ -28759,9 +28769,9 @@ return self;
|
|
|
}, function($ctx1) {$ctx1.fill(self,"printString",{})});
|
|
|
},
|
|
|
args: [],
|
|
|
-source: "printString\x0a\x09<inlineJS: '\x0a\x09\x09var js = $self.jsObject;\x0a\x09\x09return js.toString\x0a\x09\x09\x09? js.toString()\x0a\x09\x09\x09: Object.prototype.toString.call(js)\x0a\x09'>",
|
|
|
+source: "printString\x0a\x09<inlineJS: '\x0a\x09\x09var js = $self.jsObject;\x0a\x09\x09return !js ? \x22<<malformed JS object proxy>>\x22 : js.toString\x0a\x09\x09\x09? js.toString()\x0a\x09\x09\x09: Object.prototype.toString.call(js)\x0a\x09'>",
|
|
|
referencedClasses: [],
|
|
|
-pragmas: [["inlineJS:", ["\x0a\x09\x09var js = $self.jsObject;\x0a\x09\x09return js.toString\x0a\x09\x09\x09? js.toString()\x0a\x09\x09\x09: Object.prototype.toString.call(js)\x0a\x09"]]],
|
|
|
+pragmas: [["inlineJS:", ["\x0a\x09\x09var js = $self.jsObject;\x0a\x09\x09return !js ? \x22<<malformed JS object proxy>>\x22 : js.toString\x0a\x09\x09\x09? js.toString()\x0a\x09\x09\x09: Object.prototype.toString.call(js)\x0a\x09"]]],
|
|
|
messageSends: []
|
|
|
}),
|
|
|
$globals.JSObjectProxy);
|
|
@@ -31449,11 +31459,11 @@ selector: "version",
|
|
|
protocol: "accessing",
|
|
|
fn: function (){
|
|
|
var self=this,$self=this;
|
|
|
-return "0.23.1";
|
|
|
+return "0.23.2";
|
|
|
|
|
|
},
|
|
|
args: [],
|
|
|
-source: "version\x0a\x09\x22Answer the version string of Amber\x22\x0a\x09\x0a\x09^ '0.23.1'",
|
|
|
+source: "version\x0a\x09\x22Answer the version string of Amber\x22\x0a\x09\x0a\x09^ '0.23.2'",
|
|
|
referencedClasses: [],
|
|
|
pragmas: [],
|
|
|
messageSends: []
|
|
@@ -33871,6 +33881,42 @@ $globals.Inspector.a$cls);
|
|
|
$core.addClass("Platform", $globals.Service, [], "Platform-Services");
|
|
|
$globals.Platform.comment="I am bridge to JS environment.\x0a\x0a## API\x0a\x0a Platform globals. \x22JS global object\x22\x0a Platform newXHR \x22new XMLHttpRequest() or its shim\x22";
|
|
|
|
|
|
+$core.addMethod(
|
|
|
+$core.method({
|
|
|
+selector: "fetch:",
|
|
|
+protocol: "accessing",
|
|
|
+fn: function (aStringOrObject){
|
|
|
+var self=this,$self=this;
|
|
|
+return $core.withContext(function($ctx1) {
|
|
|
+return $recv($self._current())._fetch_(aStringOrObject);
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"fetch:",{aStringOrObject:aStringOrObject})});
|
|
|
+},
|
|
|
+args: ["aStringOrObject"],
|
|
|
+source: "fetch: aStringOrObject\x0a\x09^ self current fetch: aStringOrObject",
|
|
|
+referencedClasses: [],
|
|
|
+pragmas: [],
|
|
|
+messageSends: ["fetch:", "current"]
|
|
|
+}),
|
|
|
+$globals.Platform.a$cls);
|
|
|
+
|
|
|
+$core.addMethod(
|
|
|
+$core.method({
|
|
|
+selector: "fetchUrl:options:",
|
|
|
+protocol: "accessing",
|
|
|
+fn: function (aString,anObject){
|
|
|
+var self=this,$self=this;
|
|
|
+return $core.withContext(function($ctx1) {
|
|
|
+return $recv($self._current())._fetchUrl_options_(aString,anObject);
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"fetchUrl:options:",{aString:aString,anObject:anObject})});
|
|
|
+},
|
|
|
+args: ["aString", "anObject"],
|
|
|
+source: "fetchUrl: aString options: anObject\x0a\x09^ self current fetchUrl: aString options: anObject",
|
|
|
+referencedClasses: [],
|
|
|
+pragmas: [],
|
|
|
+messageSends: ["fetchUrl:options:", "current"]
|
|
|
+}),
|
|
|
+$globals.Platform.a$cls);
|
|
|
+
|
|
|
$core.addMethod(
|
|
|
$core.method({
|
|
|
selector: "globals",
|
|
@@ -39171,7 +39217,7 @@ $globals.ASTNode);
|
|
|
|
|
|
$core.addMethod(
|
|
|
$core.method({
|
|
|
-selector: "isSuperKeyword",
|
|
|
+selector: "isSuper",
|
|
|
protocol: "testing",
|
|
|
fn: function (){
|
|
|
var self=this,$self=this;
|
|
@@ -39179,7 +39225,7 @@ return false;
|
|
|
|
|
|
},
|
|
|
args: [],
|
|
|
-source: "isSuperKeyword\x0a\x09^ false",
|
|
|
+source: "isSuper\x0a\x09^ false",
|
|
|
referencedClasses: [],
|
|
|
pragmas: [],
|
|
|
messageSends: []
|
|
@@ -40784,16 +40830,16 @@ $ctx1.sendIdx["receiver"]=1;
|
|
|
$1=$recv($2)._notNil();
|
|
|
return $recv($1)._and_((function(){
|
|
|
return $core.withContext(function($ctx2) {
|
|
|
-return $recv($self._receiver())._isSuperKeyword();
|
|
|
+return $recv($self._receiver())._isSuper();
|
|
|
}, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
|
|
|
}));
|
|
|
}, function($ctx1) {$ctx1.fill(self,"superSend",{})});
|
|
|
},
|
|
|
args: [],
|
|
|
-source: "superSend\x0a\x09^ self receiver notNil and: [ self receiver isSuperKeyword ]",
|
|
|
+source: "superSend\x0a\x09^ self receiver notNil and: [ self receiver isSuper ]",
|
|
|
referencedClasses: [],
|
|
|
pragmas: [],
|
|
|
-messageSends: ["and:", "notNil", "receiver", "isSuperKeyword"]
|
|
|
+messageSends: ["and:", "notNil", "receiver", "isSuper"]
|
|
|
}),
|
|
|
$globals.SendNode);
|
|
|
|
|
@@ -41236,19 +41282,19 @@ $globals.VariableNode);
|
|
|
|
|
|
$core.addMethod(
|
|
|
$core.method({
|
|
|
-selector: "isSuperKeyword",
|
|
|
+selector: "isSuper",
|
|
|
protocol: "testing",
|
|
|
fn: function (){
|
|
|
var self=this,$self=this;
|
|
|
return $core.withContext(function($ctx1) {
|
|
|
-return $recv($self._value()).__eq("super");
|
|
|
-}, function($ctx1) {$ctx1.fill(self,"isSuperKeyword",{})});
|
|
|
+return $recv($self._binding())._isSuper();
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"isSuper",{})});
|
|
|
},
|
|
|
args: [],
|
|
|
-source: "isSuperKeyword\x0a\x09^ self value = 'super'",
|
|
|
+source: "isSuper\x0a\x09^ self binding isSuper",
|
|
|
referencedClasses: [],
|
|
|
pragmas: [],
|
|
|
-messageSends: ["=", "value"]
|
|
|
+messageSends: ["isSuper", "binding"]
|
|
|
}),
|
|
|
$globals.VariableNode);
|
|
|
|
|
@@ -42519,7 +42565,7 @@ protocol: "accessing",
|
|
|
fn: function (){
|
|
|
var self=this,$self=this;
|
|
|
return $core.withContext(function($ctx1) {
|
|
|
-var $1,$2,$4,$3,$receiver;
|
|
|
+var $1,$2,$4,$5,$6,$3,$7,$9,$8,$receiver;
|
|
|
$1=$self.pseudoVars;
|
|
|
if(($receiver = $1) == null || $receiver.a$nil){
|
|
|
$self.pseudoVars=$recv($globals.Dictionary)._new();
|
|
@@ -42527,11 +42573,23 @@ $recv($recv($globals.Smalltalk)._pseudoVariableNames())._do_((function(each){
|
|
|
return $core.withContext(function($ctx2) {
|
|
|
$2=$self.pseudoVars;
|
|
|
$4=$recv($globals.PseudoVar)._on_(each);
|
|
|
-$recv($4)._scope_($self._methodScope());
|
|
|
-$3=$recv($4)._yourself();
|
|
|
+$ctx2.sendIdx["on:"]=1;
|
|
|
+$5=$self._methodScope();
|
|
|
+$ctx2.sendIdx["methodScope"]=1;
|
|
|
+$recv($4)._scope_($5);
|
|
|
+$ctx2.sendIdx["scope:"]=1;
|
|
|
+$6=$recv($4)._yourself();
|
|
|
+$ctx2.sendIdx["yourself"]=1;
|
|
|
+$3=$6;
|
|
|
return $recv($2)._at_put_(each,$3);
|
|
|
+$ctx2.sendIdx["at:put:"]=1;
|
|
|
}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,2)});
|
|
|
}));
|
|
|
+$7=$self.pseudoVars;
|
|
|
+$9=$recv($globals.SuperVar)._on_("super");
|
|
|
+$recv($9)._scope_($self._methodScope());
|
|
|
+$8=$recv($9)._yourself();
|
|
|
+$recv($7)._at_put_("super",$8);
|
|
|
} else {
|
|
|
$1;
|
|
|
}
|
|
@@ -42539,8 +42597,8 @@ return $self.pseudoVars;
|
|
|
}, function($ctx1) {$ctx1.fill(self,"pseudoVars",{})});
|
|
|
},
|
|
|
args: [],
|
|
|
-source: "pseudoVars\x0a\x09pseudoVars ifNil: [\x0a\x09\x09pseudoVars := Dictionary new.\x0a\x09\x09Smalltalk pseudoVariableNames do: [ :each |\x0a\x09\x09\x09pseudoVars at: each put: ((PseudoVar on: each)\x0a\x09\x09\x09\x09scope: self methodScope;\x0a\x09\x09\x09\x09yourself) ]].\x0a\x09^ pseudoVars",
|
|
|
-referencedClasses: ["Dictionary", "Smalltalk", "PseudoVar"],
|
|
|
+source: "pseudoVars\x0a\x09pseudoVars ifNil: [\x0a\x09\x09pseudoVars := Dictionary new.\x0a\x09\x09Smalltalk pseudoVariableNames do: [ :each |\x0a\x09\x09\x09pseudoVars at: each put: ((PseudoVar on: each)\x0a\x09\x09\x09\x09scope: self methodScope;\x0a\x09\x09\x09\x09yourself) ].\x0a\x09\x09pseudoVars at: #super put: ((SuperVar on: #super) scope: self methodScope; yourself) ].\x0a\x09^ pseudoVars",
|
|
|
+referencedClasses: ["Dictionary", "Smalltalk", "PseudoVar", "SuperVar"],
|
|
|
pragmas: [],
|
|
|
messageSends: ["ifNil:", "new", "do:", "pseudoVariableNames", "at:put:", "scope:", "on:", "methodScope", "yourself"]
|
|
|
}),
|
|
@@ -43150,23 +43208,43 @@ messageSends: ["="]
|
|
|
}),
|
|
|
$globals.PseudoVar);
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+$core.addClass("SuperVar", $globals.PseudoVar, [], "Compiler-Semantic");
|
|
|
+$globals.SuperVar.comment="I am a 'super' pseudo variable.";
|
|
|
+$core.addMethod(
|
|
|
+$core.method({
|
|
|
+selector: "alias",
|
|
|
+protocol: "accessing",
|
|
|
+fn: function (){
|
|
|
+var self=this,$self=this;
|
|
|
+return "self";
|
|
|
+
|
|
|
+},
|
|
|
+args: [],
|
|
|
+source: "alias\x0a\x09^ 'self'",
|
|
|
+referencedClasses: [],
|
|
|
+pragmas: [],
|
|
|
+messageSends: []
|
|
|
+}),
|
|
|
+$globals.SuperVar);
|
|
|
+
|
|
|
$core.addMethod(
|
|
|
$core.method({
|
|
|
selector: "isSuper",
|
|
|
protocol: "testing",
|
|
|
fn: function (){
|
|
|
var self=this,$self=this;
|
|
|
-return $core.withContext(function($ctx1) {
|
|
|
-return $recv($self.name).__eq("super");
|
|
|
-}, function($ctx1) {$ctx1.fill(self,"isSuper",{})});
|
|
|
+return true;
|
|
|
+
|
|
|
},
|
|
|
args: [],
|
|
|
-source: "isSuper\x0a\x09^ name = 'super'",
|
|
|
+source: "isSuper\x0a\x09^ true",
|
|
|
referencedClasses: [],
|
|
|
pragmas: [],
|
|
|
-messageSends: ["="]
|
|
|
+messageSends: []
|
|
|
}),
|
|
|
-$globals.PseudoVar);
|
|
|
+$globals.SuperVar);
|
|
|
|
|
|
|
|
|
|
|
@@ -47590,7 +47668,7 @@ protocol: "visiting",
|
|
|
fn: function (anIRSend){
|
|
|
var self=this,$self=this;
|
|
|
return $core.withContext(function($ctx1) {
|
|
|
-var $1,$4,$3,$2,$5,$6,$7;
|
|
|
+var $1,$4,$3,$2,$5;
|
|
|
$1=$self._stream();
|
|
|
$ctx1.sendIdx["stream"]=1;
|
|
|
$recv($1)._nextPutAll_("(");
|
|
@@ -47615,40 +47693,61 @@ $recv($1)._nextPutAll_("//>>excludeEnd(\x22ctx\x22);");
|
|
|
$ctx1.sendIdx["nextPutAll:"]=4;
|
|
|
$recv($1)._lf();
|
|
|
$ctx1.sendIdx["lf"]=4;
|
|
|
-$5="(".__comma($recv($self._currentClass())._asJavaScriptSource());
|
|
|
-$ctx1.sendIdx[","]=2;
|
|
|
-$recv($1)._nextPutAll_($5);
|
|
|
+$self._writeActualSuperSend_(anIRSend);
|
|
|
+$5=$self._stream();
|
|
|
+$recv($5)._nextPutAll_(");");
|
|
|
$ctx1.sendIdx["nextPutAll:"]=5;
|
|
|
-$recv($1)._nextPutAll_(".superclass||$boot.nilAsClass).fn.prototype.");
|
|
|
+$recv($5)._lf();
|
|
|
+$ctx1.sendIdx["lf"]=5;
|
|
|
+$recv($5)._nextPutAll_("//>>excludeStart(\x22ctx\x22, pragmas.excludeDebugContexts);");
|
|
|
$ctx1.sendIdx["nextPutAll:"]=6;
|
|
|
-$6=$recv($recv(anIRSend)._javaScriptSelector()).__comma(".apply(");
|
|
|
-$ctx1.sendIdx[","]=3;
|
|
|
-$recv($1)._nextPutAll_($6);
|
|
|
+$recv($5)._lf();
|
|
|
+$ctx1.sendIdx["lf"]=6;
|
|
|
+$recv($5)._nextPutAll_($recv($recv($recv(anIRSend)._scope())._alias()).__comma(".supercall = false;"));
|
|
|
$ctx1.sendIdx["nextPutAll:"]=7;
|
|
|
+$recv($5)._lf();
|
|
|
+$recv($5)._nextPutAll_("//>>excludeEnd(\x22ctx\x22);");
|
|
|
+return self;
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"visitSuperSend:",{anIRSend:anIRSend})});
|
|
|
+},
|
|
|
+args: ["anIRSend"],
|
|
|
+source: "visitSuperSend: anIRSend\x0a\x09self stream\x0a\x09\x09nextPutAll: '('; lf;\x0a\x09\x09nextPutAll: '//>>excludeStart(\x22ctx\x22, pragmas.excludeDebugContexts);'; lf;\x0a\x09\x09nextPutAll: anIRSend scope alias, '.supercall = true,'; lf;\x0a\x09\x09nextPutAll: '//>>excludeEnd(\x22ctx\x22);'; lf.\x0a\x09self writeActualSuperSend: anIRSend.\x0a\x09self stream \x0a\x09\x09nextPutAll: ');'; lf;\x0a\x09\x09nextPutAll: '//>>excludeStart(\x22ctx\x22, pragmas.excludeDebugContexts);'; lf;\x0a\x09\x09nextPutAll: anIRSend scope alias, '.supercall = false;'; lf;\x0a\x09\x09nextPutAll: '//>>excludeEnd(\x22ctx\x22);'",
|
|
|
+referencedClasses: [],
|
|
|
+pragmas: [],
|
|
|
+messageSends: ["nextPutAll:", "stream", "lf", ",", "alias", "scope", "writeActualSuperSend:"]
|
|
|
+}),
|
|
|
+$globals.IRJSTranslator);
|
|
|
+
|
|
|
+$core.addMethod(
|
|
|
+$core.method({
|
|
|
+selector: "writeActualSuperSend:",
|
|
|
+protocol: "visiting",
|
|
|
+fn: function (anIRSend){
|
|
|
+var self=this,$self=this;
|
|
|
+return $core.withContext(function($ctx1) {
|
|
|
+var $1,$2;
|
|
|
+$1=$self._stream();
|
|
|
+$ctx1.sendIdx["stream"]=1;
|
|
|
+$2="(".__comma($recv($self._currentClass())._asJavaScriptSource());
|
|
|
+$ctx1.sendIdx[","]=1;
|
|
|
+$recv($1)._nextPutAll_($2);
|
|
|
+$ctx1.sendIdx["nextPutAll:"]=1;
|
|
|
+$recv($1)._nextPutAll_(".superclass||$boot.nilAsClass).fn.prototype.");
|
|
|
+$ctx1.sendIdx["nextPutAll:"]=2;
|
|
|
+$recv($1)._nextPutAll_($recv($recv(anIRSend)._javaScriptSelector()).__comma(".apply("));
|
|
|
+$ctx1.sendIdx["nextPutAll:"]=3;
|
|
|
$recv($1)._nextPutAll_("$self, ");
|
|
|
-$ctx1.sendIdx["nextPutAll:"]=8;
|
|
|
+$ctx1.sendIdx["nextPutAll:"]=4;
|
|
|
$self._visitInstructionList_enclosedBetween_and_($recv(anIRSend)._arguments(),"[","]");
|
|
|
-$7=$self._stream();
|
|
|
-$recv($7)._nextPutAll_("));");
|
|
|
-$ctx1.sendIdx["nextPutAll:"]=9;
|
|
|
-$recv($7)._lf();
|
|
|
-$ctx1.sendIdx["lf"]=5;
|
|
|
-$recv($7)._nextPutAll_("//>>excludeStart(\x22ctx\x22, pragmas.excludeDebugContexts);");
|
|
|
-$ctx1.sendIdx["nextPutAll:"]=10;
|
|
|
-$recv($7)._lf();
|
|
|
-$ctx1.sendIdx["lf"]=6;
|
|
|
-$recv($7)._nextPutAll_($recv($recv($recv(anIRSend)._scope())._alias()).__comma(".supercall = false;"));
|
|
|
-$ctx1.sendIdx["nextPutAll:"]=11;
|
|
|
-$recv($7)._lf();
|
|
|
-$recv($7)._nextPutAll_("//>>excludeEnd(\x22ctx\x22);");
|
|
|
+$recv($self._stream())._nextPutAll_(")");
|
|
|
return self;
|
|
|
-}, function($ctx1) {$ctx1.fill(self,"visitSuperSend:",{anIRSend:anIRSend})});
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"writeActualSuperSend:",{anIRSend:anIRSend})});
|
|
|
},
|
|
|
args: ["anIRSend"],
|
|
|
-source: "visitSuperSend: anIRSend\x0a\x09self stream\x0a\x09\x09nextPutAll: '('; lf;\x0a\x09\x09nextPutAll: '//>>excludeStart(\x22ctx\x22, pragmas.excludeDebugContexts);'; lf;\x0a\x09\x09nextPutAll: anIRSend scope alias, '.supercall = true,'; lf;\x0a\x09\x09nextPutAll: '//>>excludeEnd(\x22ctx\x22);'; lf;\x0a\x09\x09nextPutAll: '(', self currentClass asJavaScriptSource;\x0a\x09\x09nextPutAll: '.superclass||$boot.nilAsClass).fn.prototype.';\x0a\x09\x09nextPutAll: anIRSend javaScriptSelector, '.apply(';\x0a\x09\x09nextPutAll: '$self, '.\x0a\x09self\x0a\x09\x09visitInstructionList: anIRSend arguments\x0a\x09\x09enclosedBetween: '[' and: ']'.\x0a\x09self stream \x0a\x09\x09nextPutAll: '));'; lf;\x0a\x09\x09nextPutAll: '//>>excludeStart(\x22ctx\x22, pragmas.excludeDebugContexts);'; lf;\x0a\x09\x09nextPutAll: anIRSend scope alias, '.supercall = false;'; lf;\x0a\x09\x09nextPutAll: '//>>excludeEnd(\x22ctx\x22);'",
|
|
|
+source: "writeActualSuperSend: anIRSend\x0a\x09self stream\x0a\x09\x09nextPutAll: '(', self currentClass asJavaScriptSource;\x0a\x09\x09nextPutAll: '.superclass||$boot.nilAsClass).fn.prototype.';\x0a\x09\x09nextPutAll: anIRSend javaScriptSelector, '.apply(';\x0a\x09\x09nextPutAll: '$self, '.\x0a\x09self\x0a\x09\x09visitInstructionList: anIRSend arguments\x0a\x09\x09enclosedBetween: '[' and: ']'.\x0a\x09self stream\x0a\x09\x09nextPutAll: ')'",
|
|
|
referencedClasses: [],
|
|
|
pragmas: [],
|
|
|
-messageSends: ["nextPutAll:", "stream", "lf", ",", "alias", "scope", "asJavaScriptSource", "currentClass", "javaScriptSelector", "visitInstructionList:enclosedBetween:and:", "arguments"]
|
|
|
+messageSends: ["nextPutAll:", "stream", ",", "asJavaScriptSource", "currentClass", "javaScriptSelector", "visitInstructionList:enclosedBetween:and:", "arguments"]
|
|
|
}),
|
|
|
$globals.IRJSTranslator);
|
|
|
|
|
@@ -69780,6 +69879,58 @@ $pkg.transport = {"type":"amd","amdNamespace":"amber/core"};
|
|
|
|
|
|
$core.addClass("NodePlatform", $globals.Object, [], "Platform-Node");
|
|
|
$globals.NodePlatform.comment="I am `Platform` service implementation for node-like environment.";
|
|
|
+$core.addMethod(
|
|
|
+$core.method({
|
|
|
+selector: "fetch:",
|
|
|
+protocol: "public API",
|
|
|
+fn: function (aStringOrObject){
|
|
|
+var self=this,$self=this;
|
|
|
+return $core.withContext(function($ctx1) {
|
|
|
+return $recv($self._globals())._at_ifPresent_ifAbsent_("fetch",(function(fetch){
|
|
|
+return $core.withContext(function($ctx2) {
|
|
|
+return $recv(fetch)._value_(aStringOrObject);
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({fetch:fetch},$ctx1,1)});
|
|
|
+}),(function(){
|
|
|
+return $core.withContext(function($ctx2) {
|
|
|
+return $recv($globals.Promise)._signal_("fetch not available.");
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
|
|
|
+}));
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"fetch:",{aStringOrObject:aStringOrObject})});
|
|
|
+},
|
|
|
+args: ["aStringOrObject"],
|
|
|
+source: "fetch: aStringOrObject\x0a\x09^ self globals at: #fetch\x0a\x09\x09ifPresent: [ :fetch | fetch value: aStringOrObject ]\x0a\x09\x09ifAbsent: [ Promise signal: 'fetch not available.' ]",
|
|
|
+referencedClasses: ["Promise"],
|
|
|
+pragmas: [],
|
|
|
+messageSends: ["at:ifPresent:ifAbsent:", "globals", "value:", "signal:"]
|
|
|
+}),
|
|
|
+$globals.NodePlatform);
|
|
|
+
|
|
|
+$core.addMethod(
|
|
|
+$core.method({
|
|
|
+selector: "fetchUrl:options:",
|
|
|
+protocol: "public API",
|
|
|
+fn: function (aString,anObject){
|
|
|
+var self=this,$self=this;
|
|
|
+return $core.withContext(function($ctx1) {
|
|
|
+return $recv($self._globals())._at_ifPresent_ifAbsent_("fetch",(function(fetch){
|
|
|
+return $core.withContext(function($ctx2) {
|
|
|
+return $recv(fetch)._value_value_(aString,anObject);
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({fetch:fetch},$ctx1,1)});
|
|
|
+}),(function(){
|
|
|
+return $core.withContext(function($ctx2) {
|
|
|
+return $recv($globals.Promise)._signal_("fetch not available.");
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
|
|
|
+}));
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"fetchUrl:options:",{aString:aString,anObject:anObject})});
|
|
|
+},
|
|
|
+args: ["aString", "anObject"],
|
|
|
+source: "fetchUrl: aString options: anObject\x0a\x09^ self globals at: #fetch\x0a\x09\x09ifPresent: [ :fetch | fetch value: aString value: anObject ]\x0a\x09\x09ifAbsent: [ Promise signal: 'fetch not available.' ]",
|
|
|
+referencedClasses: ["Promise"],
|
|
|
+pragmas: [],
|
|
|
+messageSends: ["at:ifPresent:ifAbsent:", "globals", "value:value:", "signal:"]
|
|
|
+}),
|
|
|
+$globals.NodePlatform);
|
|
|
+
|
|
|
$core.addMethod(
|
|
|
$core.method({
|
|
|
selector: "globals",
|
|
@@ -69800,7 +69951,7 @@ $globals.NodePlatform);
|
|
|
$core.addMethod(
|
|
|
$core.method({
|
|
|
selector: "newXhr",
|
|
|
-protocol: "accessing",
|
|
|
+protocol: "public API",
|
|
|
fn: function (){
|
|
|
var self=this,$self=this;
|
|
|
return $core.withContext(function($ctx1) {
|
|
@@ -72465,7 +72616,6 @@ $globals.Repl.a$cls);
|
|
|
|
|
|
require(["app"]);
|
|
|
});
|
|
|
-define.require('__wrap__');
|
|
|
}((function amdefine(module, requireFn) {
|
|
|
'use strict';
|
|
|
var defineCache = {},
|