Browse Source

Method attachments: no need for IIFE.

Because Object.defineProperty returns the modified object.
Herby Vojčík 4 years ago
parent
commit
9ce6b38e9d
2 changed files with 8 additions and 8 deletions
  1. 4 4
      lang/src/Compiler-Core.js
  2. 4 4
      lang/src/Compiler-Core.st

+ 4 - 4
lang/src/Compiler-Core.js

@@ -1194,7 +1194,7 @@ selector: "wrappedSourceOf:",
 protocol: "private",
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["anIRMethod"],
-source: "wrappedSourceOf: anIRMethod\x0a\x09^ anIRMethod attachments\x0a\x09\x09ifEmpty: [\x0a\x09\x09\x09'(function ($methodClass){ return ',\x0a\x09\x09\x09anIRMethod compiledSource,\x0a\x09\x09\x09'; })' ]\x0a\x09\x09ifNotEmpty: [ :attachments |\x0a\x09\x09\x09'(function ($methodClass){ return (function(method){Object.defineProperty(method,\x22a$atx\x22,{enumerable:false,configurable:true,writable:true,value:',\x0a\x09\x09\x09attachments asJavaScriptSource,\x0a\x09\x09\x09'});return method})(',\x0a\x09\x09\x09anIRMethod compiledSource,\x0a\x09\x09\x09'); })' ]",
+source: "wrappedSourceOf: anIRMethod\x0a\x09^ anIRMethod attachments\x0a\x09\x09ifEmpty: [\x0a\x09\x09\x09'(function ($methodClass){ return ',\x0a\x09\x09\x09anIRMethod compiledSource,\x0a\x09\x09\x09'; })' ]\x0a\x09\x09ifNotEmpty: [ :attachments |\x0a\x09\x09\x09'(function ($methodClass){ return Object.defineProperty(',\x0a\x09\x09\x09anIRMethod compiledSource,\x0a\x09\x09\x09',\x22a$atx\x22,{enumerable:false,configurable:true,writable:true,value:',\x0a\x09\x09\x09attachments asJavaScriptSource,\x0a\x09\x09\x09'}); })' ]",
 referencedClasses: [],
 //>>excludeEnd("ide");
 pragmas: [],
@@ -1228,15 +1228,15 @@ return [$recv(["(function ($methodClass){ return ".__comma([$recv(anIRMethod)._c
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 return $core.withContext(function($ctx2) {
 //>>excludeEnd("ctx");
-return [$recv([$recv([$recv("(function ($methodClass){ return (function(method){Object.defineProperty(method,\x22a$atx\x22,{enumerable:false,configurable:true,writable:true,value:".__comma($recv(attachments)._asJavaScriptSource())).__comma("});return method})(")
+return [$recv([$recv([$recv("(function ($methodClass){ return Object.defineProperty(".__comma($recv(anIRMethod)._compiledSource())).__comma(",\x22a$atx\x22,{enumerable:false,configurable:true,writable:true,value:")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx[","]=5
 //>>excludeEnd("ctx");
-][0]).__comma($recv(anIRMethod)._compiledSource())
+][0]).__comma($recv(attachments)._asJavaScriptSource())
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx[","]=4
 //>>excludeEnd("ctx");
-][0]).__comma("); })")
+][0]).__comma("}); })")
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 ,$ctx2.sendIdx[","]=3
 //>>excludeEnd("ctx");

+ 4 - 4
lang/src/Compiler-Core.st

@@ -309,11 +309,11 @@ wrappedSourceOf: anIRMethod
 			anIRMethod compiledSource,
 			'; })' ]
 		ifNotEmpty: [ :attachments |
-			'(function ($methodClass){ return (function(method){Object.defineProperty(method,"a$atx",{enumerable:false,configurable:true,writable:true,value:',
-			attachments asJavaScriptSource,
-			'});return method})(',
+			'(function ($methodClass){ return Object.defineProperty(',
 			anIRMethod compiledSource,
-			'); })' ]
+			',"a$atx",{enumerable:false,configurable:true,writable:true,value:',
+			attachments asJavaScriptSource,
+			'}); })' ]
 ! !
 
 !Compiler class methodsFor: 'compiling'!