diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp
index 146a908..331fb9d 100644
--- a/src/binaryen-c.cpp
+++ b/src/binaryen-c.cpp
@@ -419,6 +419,18 @@
   return static_cast<BinaryenExternalKind>(ExternalKind::Tag);
 }
 
+// MemoryOrder for atomic operations
+
+BINARYEN_API BinaryenMemoryOrder BinaryenMemoryOrderUnordered(void) {
+  return static_cast<BinaryenMemoryOrder>(MemoryOrder::Unordered);
+}
+BINARYEN_API BinaryenMemoryOrder BinaryenMemoryOrderSeqCst(void) {
+  return static_cast<BinaryenMemoryOrder>(MemoryOrder::SeqCst);
+}
+BINARYEN_API BinaryenMemoryOrder BinaryenMemoryOrderAcqRel(void) {
+  return static_cast<BinaryenMemoryOrder>(MemoryOrder::AcqRel);
+}
+
 // Features
 
 BinaryenFeatures BinaryenFeatureMVP(void) {
diff --git a/src/binaryen-c.h b/src/binaryen-c.h
index f76741b..1337baf 100644
--- a/src/binaryen-c.h
+++ b/src/binaryen-c.h
@@ -203,6 +203,14 @@
 BINARYEN_API BinaryenExternalKind BinaryenExternalGlobal(void);
 BINARYEN_API BinaryenExternalKind BinaryenExternalTag(void);
 
+// MemoryOrder for atomic operations
+
+typedef uint8_t BinaryenMemoryOrder;
+
+BINARYEN_API BinaryenMemoryOrder BinaryenMemoryOrderUnordered(void);
+BINARYEN_API BinaryenMemoryOrder BinaryenMemoryOrderSeqCst(void);
+BINARYEN_API BinaryenMemoryOrder BinaryenMemoryOrderAcqRel(void);
+
 // Features. Call to get the value of each; you can cache them. Use bitwise
 // operators to combine and test particular features.
 
diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js
index 82a6695..1fee8df 100644
--- a/src/js/binaryen.js-post.js
+++ b/src/js/binaryen.js-post.js
@@ -157,6 +157,15 @@
     Module['ExternalKinds'][name] = Module['External' + name] = Module['_BinaryenExternal' + name]();
   });
 
+  // MemoryOrder for atomic operations
+  Module['MemoryOrder'] = {};
+  [ 'Unordered',
+    'SeqCst',
+    'AcqRel'
+   ].forEach(name => {
+    Module['MemoryOrder'][name] = Module['_BinaryenMemoryOrder' + name]()
+   });
+
   // Features
   Module['Features'] = {};
   [ 'MVP',
diff --git a/src/wasm.h b/src/wasm.h
index 5c36d5b..abf5297 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -65,7 +65,7 @@
   }
 };
 
-enum class MemoryOrder {
+enum class MemoryOrder : uint8_t {
   Unordered,
   SeqCst,
   AcqRel,
