@@ -183,6 +183,7 @@ function Logo(canvas, blocks, turtles, stage, refreshCanvas, textMsg, errorMsg,
183183 case 'plus' :
184184 case 'minus' :
185185 case 'multiply' :
186+ case 'power' :
186187 case 'divide' :
187188 value = this . blocks . blockList [ blk ] . value ;
188189 break ;
@@ -1936,6 +1937,19 @@ function Logo(canvas, blocks, turtles, stage, refreshCanvas, textMsg, errorMsg,
19361937 logo . blocks . blockList [ blk ] . value = logo . doPlus ( a , b ) ;
19371938 }
19381939 break ;
1940+
1941+ case 'power' :
1942+ if ( logo . inStatusMatrix ) {
1943+ logo . statusFields . push ( [ blk , 'power' ] ) ;
1944+ } else {
1945+ var cblk1 = logo . blocks . blockList [ blk ] . connections [ 1 ] ;
1946+ var cblk2 = logo . blocks . blockList [ blk ] . connections [ 2 ] ;
1947+ var a = logo . parseArg ( logo , turtle , cblk1 , blk , receivedArg ) ;
1948+ var b = logo . parseArg ( logo , turtle , cblk2 , blk , receivedArg ) ;
1949+ logo . blocks . blockList [ blk ] . value = logo . _doPower ( a , b ) ;
1950+ }
1951+ break ;
1952+
19391953 case 'multiply' :
19401954 if ( logo . inStatusMatrix ) {
19411955 logo . statusFields . push ( [ blk , logo . blocks . blockList [ blk ] . name ] ) ;
@@ -2420,6 +2434,18 @@ function Logo(canvas, blocks, turtles, stage, refreshCanvas, textMsg, errorMsg,
24202434 }
24212435 }
24222436
2437+
2438+ this . _doPower = function ( a , b ) {
2439+ if ( typeof ( a ) === 'string' || typeof ( b ) === 'string' ) {
2440+ this . errorMsg ( NANERRORMSG ) ;
2441+ this . stopTurtle = true ;
2442+ return 0 ;
2443+ }
2444+
2445+ return Math . pow ( a , b ) ;
2446+ }
2447+
2448+
24232449 this . setBackgroundColor = function ( turtle ) {
24242450 /// Change body background in DOM to current color.
24252451 var body = document . body ;
0 commit comments