diff --git a/src/Pact/Native/Ops.hs b/src/Pact/Native/Ops.hs index 32563c417..60ec2d6b1 100644 --- a/src/Pact/Native/Ops.hs +++ b/src/Pact/Native/Ops.hs @@ -570,8 +570,10 @@ shiftDef = defRNative "shift" go ) where go i [TLiteral (LInteger x) xi,TLiteral (LInteger y) yi] - | y > 0 = do - z <- powImpl i [TLiteral (LInteger 2) yi, TLiteral (LInteger y) yi] - mulImpl i [TLiteral (LInteger x) xi, z] + | y > 0 = isExecutionFlagSet FlagDisablePact47 >>= \case + True -> return $ toTerm $ shift x (fromIntegral y) + False -> do + z <- powImpl i [TLiteral (LInteger 2) yi, TLiteral (LInteger y) yi] + mulImpl i [TLiteral (LInteger x) xi, z] | otherwise = return $ toTerm $ shift x (fromIntegral y) go i as = argsError i as