Browse Source

kernel: remove allowJavaScriptCalls

Herbert Vojčík 7 years ago
parent
commit
2edcf066c9
3 changed files with 6 additions and 207 deletions
  1. 0 160
      src/Kernel-Tests.js
  2. 0 30
      src/Kernel-Tests.st
  3. 6 17
      support/kernel-runtime.js

+ 0 - 160
src/Kernel-Tests.js

@@ -10713,166 +10713,6 @@ messageSends: ["should:raise:", "foo", "jsObject"]
 }),
 $globals.JSObjectProxyTest);
 
-$core.addMethod(
-$core.method({
-selector: "testDNURegression1057",
-protocol: "tests",
-fn: function (){
-var self=this;
-var jsObject;
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-return $core.withContext(function($ctx1) {
-//>>excludeEnd("ctx");
-var $1;
-jsObject=[];
-$recv(jsObject)._basicAt_put_("allowJavaScriptCalls",true);
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["basicAt:put:"]=1;
-//>>excludeEnd("ctx");
-$recv(jsObject)._basicAt_put_("foo",(3));
-self._shouldnt_raise_((function(){
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-return $core.withContext(function($ctx2) {
-//>>excludeEnd("ctx");
-return $recv(jsObject)._foo();
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx2.sendIdx["foo"]=1;
-//>>excludeEnd("ctx");
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
-//>>excludeEnd("ctx");
-}),$globals.Error);
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["shouldnt:raise:"]=1;
-//>>excludeEnd("ctx");
-$1=$recv(jsObject)._foo();
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["foo"]=2;
-//>>excludeEnd("ctx");
-self._assert_equals_($1,(3));
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["assert:equals:"]=1;
-//>>excludeEnd("ctx");
-self._shouldnt_raise_((function(){
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-return $core.withContext(function($ctx2) {
-//>>excludeEnd("ctx");
-return $recv(jsObject)._foo_((4));
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
-//>>excludeEnd("ctx");
-}),$globals.Error);
-self._assert_equals_($recv(jsObject)._foo(),(4));
-return self;
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx1) {$ctx1.fill(self,"testDNURegression1057",{jsObject:jsObject},$globals.JSObjectProxyTest)});
-//>>excludeEnd("ctx");
-},
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: [],
-source: "testDNURegression1057\x0a\x09| jsObject |\x0a\x09jsObject := #().\x0a\x09jsObject basicAt: 'allowJavaScriptCalls' put: true.\x0a\x09jsObject basicAt: 'foo' put: 3.\x0a\x09self shouldnt: [ jsObject foo ] raise: Error.\x0a\x09self assert: jsObject foo equals: 3.\x0a\x09self shouldnt: [ jsObject foo: 4 ] raise: Error.\x0a\x09self assert: jsObject foo equals: 4",
-referencedClasses: ["Error"],
-//>>excludeEnd("ide");
-messageSends: ["basicAt:put:", "shouldnt:raise:", "foo", "assert:equals:", "foo:"]
-}),
-$globals.JSObjectProxyTest);
-
-$core.addMethod(
-$core.method({
-selector: "testDNURegression1059",
-protocol: "tests",
-fn: function (){
-var self=this;
-var jsObject;
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-return $core.withContext(function($ctx1) {
-//>>excludeEnd("ctx");
-jsObject=[];
-$recv(jsObject)._basicAt_put_("allowJavaScriptCalls",true);
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["basicAt:put:"]=1;
-//>>excludeEnd("ctx");
-$recv(jsObject)._basicAt_put_("x",(3));
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["basicAt:put:"]=2;
-//>>excludeEnd("ctx");
-$recv(jsObject)._basicAt_put_("x:",(function(){
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-return $core.withContext(function($ctx2) {
-//>>excludeEnd("ctx");
-return self._error();
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
-//>>excludeEnd("ctx");
-}));
-self._shouldnt_raise_((function(){
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-return $core.withContext(function($ctx2) {
-//>>excludeEnd("ctx");
-return $recv(jsObject)._x_((4));
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
-//>>excludeEnd("ctx");
-}),$globals.Error);
-self._assert_equals_($recv(jsObject)._x(),(4));
-return self;
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx1) {$ctx1.fill(self,"testDNURegression1059",{jsObject:jsObject},$globals.JSObjectProxyTest)});
-//>>excludeEnd("ctx");
-},
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: [],
-source: "testDNURegression1059\x0a\x09| jsObject |\x0a\x09jsObject := #().\x0a\x09jsObject basicAt: 'allowJavaScriptCalls' put: true.\x0a\x09jsObject basicAt: 'x' put: 3.\x0a\x09jsObject basicAt: 'x:' put: [ self error ].\x0a\x09self shouldnt: [ jsObject x: 4 ] raise: Error.\x0a\x09self assert: jsObject x equals: 4",
-referencedClasses: ["Error"],
-//>>excludeEnd("ide");
-messageSends: ["basicAt:put:", "error", "shouldnt:raise:", "x:", "assert:equals:", "x"]
-}),
-$globals.JSObjectProxyTest);
-
-$core.addMethod(
-$core.method({
-selector: "testDNURegression1062",
-protocol: "tests",
-fn: function (){
-var self=this;
-var jsObject,stored;
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-return $core.withContext(function($ctx1) {
-//>>excludeEnd("ctx");
-jsObject=[];
-$recv(jsObject)._basicAt_put_("allowJavaScriptCalls",true);
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-$ctx1.sendIdx["basicAt:put:"]=1;
-//>>excludeEnd("ctx");
-$recv(jsObject)._basicAt_put_("x",(function(v){
-stored=v;
-return stored;
-
-}));
-self._shouldnt_raise_((function(){
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-return $core.withContext(function($ctx2) {
-//>>excludeEnd("ctx");
-return $recv(jsObject)._x_((4));
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
-//>>excludeEnd("ctx");
-}),$globals.Error);
-self._assert_equals_(stored,(4));
-return self;
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
-}, function($ctx1) {$ctx1.fill(self,"testDNURegression1062",{jsObject:jsObject,stored:stored},$globals.JSObjectProxyTest)});
-//>>excludeEnd("ctx");
-},
-//>>excludeStart("ide", pragmas.excludeIdeData);
-args: [],
-source: "testDNURegression1062\x0a\x09| jsObject stored |\x0a\x09jsObject := #().\x0a\x09jsObject basicAt: 'allowJavaScriptCalls' put: true.\x0a\x09jsObject basicAt: 'x' put: [ :v | stored := v ].\x0a\x09self shouldnt: [ jsObject x: 4 ] raise: Error.\x0a\x09self assert: stored equals: 4",
-referencedClasses: ["Error"],
-//>>excludeEnd("ide");
-messageSends: ["basicAt:put:", "shouldnt:raise:", "x:", "assert:equals:"]
-}),
-$globals.JSObjectProxyTest);
-
 $core.addMethod(
 $core.method({
 selector: "testDNUWithAllowJavaScriptCalls",

+ 0 - 30
src/Kernel-Tests.st

@@ -1943,36 +1943,6 @@ testDNU
 	self should: [ self jsObject foo ] raise: MessageNotUnderstood
 !
 
-testDNURegression1057
-	| jsObject |
-	jsObject := #().
-	jsObject basicAt: 'allowJavaScriptCalls' put: true.
-	jsObject basicAt: 'foo' put: 3.
-	self shouldnt: [ jsObject foo ] raise: Error.
-	self assert: jsObject foo equals: 3.
-	self shouldnt: [ jsObject foo: 4 ] raise: Error.
-	self assert: jsObject foo equals: 4
-!
-
-testDNURegression1059
-	| jsObject |
-	jsObject := #().
-	jsObject basicAt: 'allowJavaScriptCalls' put: true.
-	jsObject basicAt: 'x' put: 3.
-	jsObject basicAt: 'x:' put: [ self error ].
-	self shouldnt: [ jsObject x: 4 ] raise: Error.
-	self assert: jsObject x equals: 4
-!
-
-testDNURegression1062
-	| jsObject stored |
-	jsObject := #().
-	jsObject basicAt: 'allowJavaScriptCalls' put: true.
-	jsObject basicAt: 'x' put: [ :v | stored := v ].
-	self shouldnt: [ jsObject x: 4 ] raise: Error.
-	self assert: stored equals: 4
-!
-
 testDNUWithAllowJavaScriptCalls
 	| jsObject |
 	jsObject := #().

+ 6 - 17
support/kernel-runtime.js

@@ -438,30 +438,19 @@ define(function () {
             }
         };
 
-        function invokeDnuMethod (receiver, stSelector, args) {
-            return receiver._doesNotUnderstand_(
-                globals.Message._new()
-                    ._selector_(stSelector)
-                    ._arguments_([].slice.call(args))
-            );
-        }
-
         function wrapJavaScript (o) {
             return globals.JSObjectProxy._on_(o);
         }
 
         st.wrapJavaScript = wrapJavaScript;
 
-        /* Handles #dnu:.
-         if the receiver has no klass, we consider it a JS object (outside of the
-         Amber system) and wrap it.
-         Else assume that the receiver understands #doesNotUnderstand: */
+        /* Handles #dnu:. Calls #doesNotUnderstand:. */
         function messageNotUnderstood (receiver, stSelector, args) {
-            if (!receiver.allowJavaScriptCalls) {
-                return invokeDnuMethod(receiver, stSelector, args);
-            } else {
-                return invokeDnuMethod(wrapJavaScript(receiver), stSelector, args);
-            }
+            return receiver._doesNotUnderstand_(
+                globals.Message._new()
+                    ._selector_(stSelector)
+                    ._arguments_([].slice.call(args))
+            );
         }
 
         /* If the object property is a function, then call it, except if it starts with