diff --git a/HISTORY.md b/HISTORY.md
index a1e672d7..a7a57237 100755
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -2,6 +2,9 @@
## in development
+###2018-12-28
+* Blocks, Threads: added 'neg' selector to monad operator dropdown
+
### 2018-12-07
* GUI: fixed #2284 (executing "inherit" should not un-hide palette in presentation mode)
diff --git a/snap.html b/snap.html
index f24b9b1e..96f6e876 100755
--- a/snap.html
+++ b/snap.html
@@ -6,8 +6,8 @@
-
-
+
+
diff --git a/src/blocks.js b/src/blocks.js
index 4bb02bd6..113f870c 100644
--- a/src/blocks.js
+++ b/src/blocks.js
@@ -148,7 +148,7 @@ CustomCommandBlockMorph, SymbolMorph, ToggleButtonMorph, DialMorph*/
// Global stuff ////////////////////////////////////////////////////////
-modules.blocks = '2018-November-13';
+modules.blocks = '2018-December-28';
var SyntaxElementMorph;
var BlockMorph;
@@ -1257,6 +1257,7 @@ SyntaxElementMorph.prototype.labelPart = function (spec) {
false,
{
abs : ['abs'],
+ neg : ['neg'],
ceiling : ['ceiling'],
floor : ['floor'],
sqrt : ['sqrt'],
diff --git a/src/threads.js b/src/threads.js
index 779d6d73..5f8bd516 100644
--- a/src/threads.js
+++ b/src/threads.js
@@ -62,7 +62,7 @@ StageMorph, SpriteMorph, StagePrompterMorph, Note, modules, isString, copy,
isNil, WatcherMorph, List, ListWatcherMorph, alert, console, TableMorph,
TableFrameMorph, ColorSlotMorph, isSnapObject, Map*/
-modules.threads = '2018-October-26';
+modules.threads = '2018-December-28';
var ThreadManager;
var Process;
@@ -2609,6 +2609,9 @@ Process.prototype.reportMonadic = function (fname, n) {
case 'abs':
result = Math.abs(x);
break;
+ case 'neg':
+ result = n * -1;
+ break;
case 'ceiling':
result = Math.ceil(x);
break;
@@ -3158,6 +3161,13 @@ Process.prototype.objectTouchingObject = function (thisObj, name) {
}
if (those.some(function (any) {
return any.isVisible && thisObj.isTouching(any);
+ // check collision with any part, performance issue
+ // commented out for now
+ /*
+ return any.allParts().some(function (part) {
+ return part.isVisible && thisObj.isTouching(part);
+ })
+ */
})) {
return true;
}