@@ -184,6 +184,7 @@ function Logo(canvas, blocks, turtles, stage, refreshCanvas, textMsg, errorMsg,
184184 case 'plus' :
185185 case 'minus' :
186186 case 'multiply' :
187+ case 'power' :
187188 case 'divide' :
188189 value = this . blocks . blockList [ blk ] . value ;
189190 break ;
@@ -1937,6 +1938,19 @@ function Logo(canvas, blocks, turtles, stage, refreshCanvas, textMsg, errorMsg,
19371938 logo . blocks . blockList [ blk ] . value = logo . doPlus ( a , b ) ;
19381939 }
19391940 break ;
1941+
1942+ case 'power' :
1943+ if ( logo . inStatusMatrix ) {
1944+ logo . statusFields . push ( [ blk , 'power' ] ) ;
1945+ } else {
1946+ var cblk1 = logo . blocks . blockList [ blk ] . connections [ 1 ] ;
1947+ var cblk2 = logo . blocks . blockList [ blk ] . connections [ 2 ] ;
1948+ var a = logo . parseArg ( logo , turtle , cblk1 , blk , receivedArg ) ;
1949+ var b = logo . parseArg ( logo , turtle , cblk2 , blk , receivedArg ) ;
1950+ logo . blocks . blockList [ blk ] . value = logo . _doPower ( a , b ) ;
1951+ }
1952+ break ;
1953+
19401954 case 'multiply' :
19411955 if ( logo . inStatusMatrix ) {
19421956 logo . statusFields . push ( [ blk , logo . blocks . blockList [ blk ] . name ] ) ;
@@ -2434,6 +2448,18 @@ function Logo(canvas, blocks, turtles, stage, refreshCanvas, textMsg, errorMsg,
24342448 }
24352449 }
24362450
2451+
2452+ this . _doPower = function ( a , b ) {
2453+ if ( typeof ( a ) === 'string' || typeof ( b ) === 'string' ) {
2454+ this . errorMsg ( NANERRORMSG ) ;
2455+ this . stopTurtle = true ;
2456+ return 0 ;
2457+ }
2458+
2459+ return Math . pow ( a , b ) ;
2460+ }
2461+
2462+
24372463 this . setBackgroundColor = function ( turtle ) {
24382464 /// Change body background in DOM to current color.
24392465 var body = document . body ;
0 commit comments