diff --git a/public/dart/zircon/BUILD.gn b/public/dart/zircon/BUILD.gn
index bddbb9e..e0da770 100644
--- a/public/dart/zircon/BUILD.gn
+++ b/public/dart/zircon/BUILD.gn
@@ -35,6 +35,7 @@
       "//prebuilt/third_party/dart/$host_os-$host_cpu/bin/dart",
       "//prebuilt/third_party/dart/$host_os-$host_cpu/bin/dartfmt",
       "//zircon/system/public/zircon/errors.h",
+      "//zircon/system/public/zircon/rights.h",
       "//zircon/system/public/zircon/types.h",
       "extract-zircon-constants.py",
       "lib/src/constants.dart",
@@ -49,6 +50,7 @@
         "$_test_data_dir/dart",
         "$_test_data_dir/dartfmt",
         "$_test_data_dir/errors.h",
+        "$_test_data_dir/rights.h",
         "$_test_data_dir/types.h",
         "$_test_data_dir/extract-zircon-constants.py",
         "$_test_data_dir/constants.dart",
@@ -77,6 +79,7 @@
       "//prebuilt/third_party/dart/$host_os-$host_cpu/bin/dart",
       "//prebuilt/third_party/dart/$host_os-$host_cpu/bin/dartfmt",
       "//zircon/system/public/zircon/errors.h",
+      "//zircon/system/public/zircon/rights.h",
       "//zircon/system/public/zircon/types.h",
       "extract-zircon-constants.py",
       "lib/src/constants.dart",
diff --git a/public/dart/zircon/extract-zircon-constants.py b/public/dart/zircon/extract-zircon-constants.py
index 548ba99..beeb570 100755
--- a/public/dart/zircon/extract-zircon-constants.py
+++ b/public/dart/zircon/extract-zircon-constants.py
@@ -16,9 +16,11 @@
                     help='Whether to run in dry-run mode; if true, no file will be generated',
                     action='store_true')
 parser.add_argument('--errors',
-                    help='Path to the zircon error header file')
+                    help='Path to the zircon errors.h header file')
 parser.add_argument('--types',
-                    help='Path to the zircon type header file')
+                    help='Path to the zircon types.h header file')
+parser.add_argument('--rights',
+                    help='Path to the zircon rights.h header file')
 parser.add_argument('--dartfmt',
                     help='Path to the dartfmt tool')
 parser.add_argument('--dart-constants',
@@ -30,11 +32,13 @@
 source_dir = os.path.dirname(__file__)
 zircon_errors = args.errors
 zircon_types = args.types
-if not zircon_errors or not zircon_types:
+zircon_rights = args.rights
+if not zircon_errors or not zircon_types or not zircon_rights:
   zircon_include_dir = os.path.join(
       source_dir, '../../../../zircon/system/public/zircon')
   zircon_errors = zircon_errors or os.path.join(zircon_include_dir, 'errors.h')
   zircon_types = zircon_types or os.path.join(zircon_include_dir, 'types.h')
+  zircon_rights = zircon_rights or os.path.join(zircon_include_dir, 'rights.h')
 
 dartfmt = args.dartfmt
 if not dartfmt:
@@ -67,9 +71,9 @@
   for line in open(header):
     line = line.rstrip()
     if continuation:
-      line = continuation + ' ' + line
+      line = continuation + ' ' + line.lstrip()
     if line.endswith('\\'):
-      continuation = line[:-1]
+      continuation = (line[:-1]).rstrip()
       continue
     else:
       continuation = ''
@@ -90,7 +94,8 @@
       defines.append((match.groupdict()['symbol'], match.groupdict()['value']))
     else:
       # ignore the header guard
-      if line.startswith('#define %s' % guard) or line.startswith('#define SYSROOT_%s' % guard):
+      if line.startswith('#define %s' % guard) or \
+          line.startswith('#define SYSROOT_%s' % guard):
         continue
       # ignore function-like macros
       if not re.match(r'#define\s+[A-Za-z0-9_]+\(', line):
@@ -98,17 +103,17 @@
         sys.exit(1)
 
   # quadratic time is best time
-  return [(k[prefix_len:], c_to_dart_value(v, defines))
+  public_constants = [(k[prefix_len:], c_to_dart_value(v, defines))
           for k, v in defines
           if k.startswith(prefix)]
+  private_constants = [(k, c_to_dart_value(v, defines))
+                       for k, v in defines
+                       if not k.startswith(prefix)]
+  return public_constants + private_constants
 
 
 def c_to_dart_value(value, defines):
   """Convert a C macro value to something that can be a Dart constant."""
-  # expand macro references
-  for k, v in defines:
-    value = value.replace(k, v)
-
   # strip type casts
   value = re.sub(r'\([a-z0-9_]+_t\)', '', value)
 
@@ -123,6 +128,10 @@
 
   # strip outer parens
   value = re.sub(r'^\((.*)\)$', r'\1', value)
+
+  # strip prefix from references to other constants
+  value = re.sub(r'\b'+prefix+r'(\w*)\b', r'\1', value)
+
   return value
 
 
@@ -149,11 +158,15 @@
 def write_constants():
   error_defines = extract_defines(zircon_errors, 'ZIRCON_ERRORS_H_')
   type_defines = extract_defines(zircon_types, 'ZIRCON_TYPES_H_')
+  right_defines = extract_defines(zircon_rights, 'ZIRCON_RIGHTS_H_')
   with DartWriter(dart_constants) as f:
     f.write(file_header)
     f.write('abstract class ZX {\n')
     f.write('  ZX._();')
-    for symbol, value in error_defines + type_defines:
+    for symbol, value in error_defines + type_defines + right_defines:
+      if symbol.startswith('_'):
+        # private constant, it's okay if it's unused.
+        f.write('  // ignore: unused_field\n')
       f.write('  static const int %s = %s;\n' % (symbol, value))
     f.write('}\n')
 
diff --git a/public/dart/zircon/lib/src/constants.dart b/public/dart/zircon/lib/src/constants.dart
index 6df392a..2147c54 100644
--- a/public/dart/zircon/lib/src/constants.dart
+++ b/public/dart/zircon/lib/src/constants.dart
@@ -58,7 +58,6 @@
   static const int ERR_CONNECTION_RESET = -75;
   static const int ERR_CONNECTION_ABORTED = -76;
   static const int HANDLE_INVALID = 0;
-  static const int TIME_INFINITE = 0xFFFFFFFFFFFFFFFF;
   static const int CLOCK_MONOTONIC = 0;
   static const int CLOCK_UTC = 1;
   static const int CLOCK_THREAD = 2;
@@ -72,67 +71,46 @@
   static const int USER_SIGNAL_5 = 1 << 29;
   static const int USER_SIGNAL_6 = 1 << 30;
   static const int USER_SIGNAL_7 = 1 << 31;
-  static const int SIGNAL_HANDLE_CLOSED = 1 << 23;
-  static const int EVENT_SIGNALED = 1 << 3;
-  static const int EVENT_SIGNAL_MASK = (0xff000000) | (1 << 3);
-  static const int EVENTPAIR_SIGNALED = 1 << 3;
-  static const int EVENTPAIR_PEER_CLOSED = 1 << 2;
-  static const int EVENTPAIR_SIGNAL_MASK = (0xff000000) | (1 << 3) | (1 << 2);
-  static const int CHANNEL_READABLE = 1 << 0;
-  static const int CHANNEL_WRITABLE = 1 << 1;
-  static const int CHANNEL_PEER_CLOSED = 1 << 2;
-  static const int SOCKET_READABLE = 1 << 0;
-  static const int SOCKET_WRITABLE = 1 << 1;
-  static const int SOCKET_PEER_CLOSED = 1 << 2;
-  static const int SOCKET_READ_DISABLED = 1 << 4;
-  static const int SOCKET_WRITE_DISABLED = 1 << 5;
-  static const int SOCKET_CONTROL_READABLE = 1 << 6;
-  static const int SOCKET_CONTROL_WRITABLE = 1 << 7;
-  static const int SOCKET_ACCEPT = 1 << 8;
-  static const int SOCKET_SHARE = 1 << 9;
-  static const int FIFO_READABLE = 1 << 0;
-  static const int FIFO_WRITABLE = 1 << 1;
-  static const int FIFO_PEER_CLOSED = 1 << 2;
-  static const int TASK_TERMINATED = 1 << 3;
-  static const int JOB_NO_PROCESSES = 1 << 3;
-  static const int JOB_NO_JOBS = 1 << 4;
-  static const int PROCESS_TERMINATED = 1 << 3;
-  static const int THREAD_TERMINATED = 1 << 3;
-  static const int THREAD_RUNNING = 1 << 4;
-  static const int THREAD_SUSPENDED = 1 << 5;
-  static const int LOG_READABLE = 1 << 0;
-  static const int LOG_WRITABLE = 1 << 1;
-  static const int TIMER_SIGNALED = 1 << 3;
-  static const int VMO_ZERO_CHILDREN = 1 << 3;
+  static const int SIGNAL_HANDLE_CLOSED = __ZX_OBJECT_HANDLE_CLOSED;
+  static const int EVENT_SIGNALED = __ZX_OBJECT_SIGNALED;
+  static const int EVENT_SIGNAL_MASK = USER_SIGNAL_ALL | __ZX_OBJECT_SIGNALED;
+  static const int EVENTPAIR_SIGNALED = __ZX_OBJECT_SIGNALED;
+  static const int EVENTPAIR_PEER_CLOSED = __ZX_OBJECT_PEER_CLOSED;
+  static const int EVENTPAIR_SIGNAL_MASK =
+      USER_SIGNAL_ALL | __ZX_OBJECT_SIGNALED | __ZX_OBJECT_PEER_CLOSED;
+  static const int CHANNEL_READABLE = __ZX_OBJECT_READABLE;
+  static const int CHANNEL_WRITABLE = __ZX_OBJECT_WRITABLE;
+  static const int CHANNEL_PEER_CLOSED = __ZX_OBJECT_PEER_CLOSED;
+  static const int SOCKET_READABLE = __ZX_OBJECT_READABLE;
+  static const int SOCKET_WRITABLE = __ZX_OBJECT_WRITABLE;
+  static const int SOCKET_PEER_CLOSED = __ZX_OBJECT_PEER_CLOSED;
+  static const int SOCKET_PEER_WRITE_DISABLED = __ZX_OBJECT_SIGNAL_4;
+  static const int SOCKET_WRITE_DISABLED = __ZX_OBJECT_SIGNAL_5;
+  static const int SOCKET_CONTROL_READABLE = __ZX_OBJECT_SIGNAL_6;
+  static const int SOCKET_CONTROL_WRITABLE = __ZX_OBJECT_SIGNAL_7;
+  static const int SOCKET_ACCEPT = __ZX_OBJECT_SIGNAL_8;
+  static const int SOCKET_SHARE = __ZX_OBJECT_SIGNAL_9;
+  static const int SOCKET_READ_THRESHOLD = __ZX_OBJECT_SIGNAL_10;
+  static const int SOCKET_WRITE_THRESHOLD = __ZX_OBJECT_SIGNAL_11;
+  static const int SOCKET_READ_DISABLED = SOCKET_PEER_WRITE_DISABLED;
+  static const int FIFO_READABLE = __ZX_OBJECT_READABLE;
+  static const int FIFO_WRITABLE = __ZX_OBJECT_WRITABLE;
+  static const int FIFO_PEER_CLOSED = __ZX_OBJECT_PEER_CLOSED;
+  static const int TASK_TERMINATED = __ZX_OBJECT_SIGNALED;
+  static const int JOB_NO_PROCESSES = __ZX_OBJECT_SIGNALED;
+  static const int JOB_NO_JOBS = __ZX_OBJECT_SIGNAL_4;
+  static const int PROCESS_TERMINATED = __ZX_OBJECT_SIGNALED;
+  static const int THREAD_TERMINATED = __ZX_OBJECT_SIGNALED;
+  static const int THREAD_RUNNING = __ZX_OBJECT_SIGNAL_4;
+  static const int THREAD_SUSPENDED = __ZX_OBJECT_SIGNAL_5;
+  static const int LOG_READABLE = __ZX_OBJECT_READABLE;
+  static const int LOG_WRITABLE = __ZX_OBJECT_WRITABLE;
+  static const int TIMER_SIGNALED = __ZX_OBJECT_SIGNALED;
+  static const int VMO_ZERO_CHILDREN = __ZX_OBJECT_SIGNALED;
   static const int KOID_INVALID = 0;
   static const int KOID_KERNEL = 1;
   static const int WAIT_MANY_MAX_ITEMS = 16;
-  static const int RIGHT_NONE = 0;
-  static const int RIGHT_DUPLICATE = 1 << 0;
-  static const int RIGHT_TRANSFER = 1 << 1;
-  static const int RIGHT_READ = 1 << 2;
-  static const int RIGHT_WRITE = 1 << 3;
-  static const int RIGHT_EXECUTE = 1 << 4;
-  static const int RIGHT_MAP = 1 << 5;
-  static const int RIGHT_GET_PROPERTY = 1 << 6;
-  static const int RIGHT_SET_PROPERTY = 1 << 7;
-  static const int RIGHT_ENUMERATE = 1 << 8;
-  static const int RIGHT_DESTROY = 1 << 9;
-  static const int RIGHT_SET_POLICY = 1 << 10;
-  static const int RIGHT_GET_POLICY = 1 << 11;
-  static const int RIGHT_SIGNAL = 1 << 12;
-  static const int RIGHT_SIGNAL_PEER = 1 << 13;
-  static const int RIGHT_WAIT = 1 << 14;
-  static const int RIGHT_INSPECT = 1 << 15;
-  static const int RIGHT_MANAGE_JOB = 1 << 16;
-  static const int RIGHT_MANAGE_PROCESS = 1 << 17;
-  static const int RIGHT_MANAGE_THREAD = 1 << 18;
-  static const int RIGHT_APPLY_PROFILE = 1 << 19;
-  static const int RIGHT_SAME_RIGHTS = 1 << 31;
-  static const int RIGHTS_BASIC = (1 << 1) | (1 << 0) | (1 << 14) | (1 << 15);
-  static const int RIGHTS_IO = (1 << 2) | (1 << 3);
-  static const int RIGHTS_PROPERTY = (1 << 6) | (1 << 7);
-  static const int RIGHTS_POLICY = (1 << 11) | (1 << 10);
+  static const int VMO_NON_RESIZABLE = 1;
   static const int VMO_OP_COMMIT = 1;
   static const int VMO_OP_DECOMMIT = 2;
   static const int VMO_OP_LOCK = 3;
@@ -141,18 +119,20 @@
   static const int VMO_OP_CACHE_INVALIDATE = 7;
   static const int VMO_OP_CACHE_CLEAN = 8;
   static const int VMO_OP_CACHE_CLEAN_INVALIDATE = 9;
-  static const int VMO_CLONE_COPY_ON_WRITE = 1;
-  static const int VM_FLAG_PERM_READ = 1 << 0;
-  static const int VM_FLAG_PERM_WRITE = 1 << 1;
-  static const int VM_FLAG_PERM_EXECUTE = 1 << 2;
-  static const int VM_FLAG_COMPACT = 1 << 3;
-  static const int VM_FLAG_SPECIFIC = 1 << 4;
-  static const int VM_FLAG_SPECIFIC_OVERWRITE = 1 << 5;
-  static const int VM_FLAG_CAN_MAP_SPECIFIC = 1 << 6;
-  static const int VM_FLAG_CAN_MAP_READ = 1 << 7;
-  static const int VM_FLAG_CAN_MAP_WRITE = 1 << 8;
-  static const int VM_FLAG_CAN_MAP_EXECUTE = 1 << 9;
-  static const int VM_FLAG_MAP_RANGE = 1 << 10;
+  static const int VMO_CLONE_COPY_ON_WRITE = 1 << 0;
+  static const int VMO_CLONE_NON_RESIZEABLE = 1 << 1;
+  static const int VM_PERM_READ = (1 << 0);
+  static const int VM_PERM_WRITE = (1 << 1);
+  static const int VM_PERM_EXECUTE = (1 << 2);
+  static const int VM_COMPACT = (1 << 3);
+  static const int VM_SPECIFIC = (1 << 4);
+  static const int VM_SPECIFIC_OVERWRITE = (1 << 5);
+  static const int VM_CAN_MAP_SPECIFIC = (1 << 6);
+  static const int VM_CAN_MAP_READ = (1 << 7);
+  static const int VM_CAN_MAP_WRITE = (1 << 8);
+  static const int VM_CAN_MAP_EXECUTE = (1 << 9);
+  static const int VM_MAP_RANGE = (1 << 10);
+  static const int VM_REQUIRE_NON_RESIZABLE = (1 << 11);
   static const int MAX_NAME_LEN = 32;
   static const int CPRNG_DRAW_MAX_LEN = 256;
   static const int CPRNG_ADD_ENTROPY_MAX_LEN = 256;
@@ -173,13 +153,16 @@
   static const int CHANNEL_MAX_MSG_HANDLES = 64;
   static const int SOCKET_SHUTDOWN_WRITE = 1 << 0;
   static const int SOCKET_SHUTDOWN_READ = 1 << 1;
-  static const int SOCKET_SHUTDOWN_MASK = (1 << 0) | (1 << 1);
-  static const int SOCKET_STREAM = 0 << 0;
+  static const int SOCKET_SHUTDOWN_MASK =
+      SOCKET_SHUTDOWN_WRITE | SOCKET_SHUTDOWN_READ;
+  static const int SOCKET_STREAM = 0;
   static const int SOCKET_DATAGRAM = 1 << 0;
   static const int SOCKET_HAS_CONTROL = 1 << 1;
   static const int SOCKET_HAS_ACCEPT = 1 << 2;
-  static const int SOCKET_CREATE_MASK = (1 << 0) | (1 << 1) | (1 << 2);
+  static const int SOCKET_CREATE_MASK =
+      SOCKET_DATAGRAM | SOCKET_HAS_CONTROL | SOCKET_HAS_ACCEPT;
   static const int SOCKET_CONTROL = 1 << 2;
+  static const int SOCKET_PEEK = 1 << 3;
   static const int CACHE_POLICY_CACHED = 0;
   static const int CACHE_POLICY_UNCACHED = 1;
   static const int CACHE_POLICY_UNCACHED_DEVICE = 2;
@@ -195,6 +178,7 @@
   static const int BTI_PERM_WRITE = 1 << 1;
   static const int BTI_PERM_EXECUTE = 1 << 2;
   static const int BTI_COMPRESS = 1 << 3;
+  static const int BTI_CONTIGUOUS = 1 << 4;
   static const int OBJ_TYPE_NONE = 0;
   static const int OBJ_TYPE_PROCESS = 1;
   static const int OBJ_TYPE_THREAD = 2;
@@ -219,7 +203,173 @@
   static const int OBJ_TYPE_PROFILE = 25;
   static const int OBJ_TYPE_PMT = 26;
   static const int OBJ_TYPE_SUSPEND_TOKEN = 27;
-  static const int OBJ_TYPE_LAST = 28;
+  static const int OBJ_TYPE_PAGER = 28;
+  static const int OBJ_TYPE_UPPER_BOUND = 64;
+  static const int VM_FLAG_PERM_READ = 1 << 0;
+  static const int VM_FLAG_PERM_WRITE = 1 << 1;
+  static const int VM_FLAG_PERM_EXECUTE = 1 << 2;
+  static const int VM_FLAG_COMPACT = 1 << 3;
+  static const int VM_FLAG_SPECIFIC = 1 << 4;
+  static const int VM_FLAG_SPECIFIC_OVERWRITE = 1 << 5;
+  static const int VM_FLAG_CAN_MAP_SPECIFIC = 1 << 6;
+  static const int VM_FLAG_CAN_MAP_READ = 1 << 7;
+  static const int VM_FLAG_CAN_MAP_WRITE = 1 << 8;
+  static const int VM_FLAG_CAN_MAP_EXECUTE = 1 << 9;
+  static const int VM_FLAG_MAP_RANGE = 1 << 10;
+  static const int VM_FLAG_REQUIRE_NON_RESIZABLE = 1 << 11;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_ALL = 0x00ffffff;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_READABLE = 1 << 0;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_WRITABLE = 1 << 1;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_PEER_CLOSED = 1 << 2;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNALED = 1 << 3;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_4 = 1 << 4;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_5 = 1 << 5;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_6 = 1 << 6;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_7 = 1 << 7;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_8 = 1 << 8;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_9 = 1 << 9;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_10 = 1 << 10;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_11 = 1 << 11;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_12 = 1 << 12;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_13 = 1 << 13;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_14 = 1 << 14;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_15 = 1 << 15;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_16 = 1 << 16;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_17 = 1 << 17;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_18 = 1 << 18;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_19 = 1 << 19;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_20 = 1 << 20;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_21 = 1 << 21;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_SIGNAL_22 = 1 << 22;
+  // ignore: unused_field
+  static const int __ZX_OBJECT_HANDLE_CLOSED = 1 << 23;
+  static const int RIGHT_NONE = 0;
+  static const int RIGHT_DUPLICATE = 1 << 0;
+  static const int RIGHT_TRANSFER = 1 << 1;
+  static const int RIGHT_READ = 1 << 2;
+  static const int RIGHT_WRITE = 1 << 3;
+  static const int RIGHT_EXECUTE = 1 << 4;
+  static const int RIGHT_MAP = 1 << 5;
+  static const int RIGHT_GET_PROPERTY = 1 << 6;
+  static const int RIGHT_SET_PROPERTY = 1 << 7;
+  static const int RIGHT_ENUMERATE = 1 << 8;
+  static const int RIGHT_DESTROY = 1 << 9;
+  static const int RIGHT_SET_POLICY = 1 << 10;
+  static const int RIGHT_GET_POLICY = 1 << 11;
+  static const int RIGHT_SIGNAL = 1 << 12;
+  static const int RIGHT_SIGNAL_PEER = 1 << 13;
+  static const int RIGHT_WAIT = 1 << 14;
+  static const int RIGHT_INSPECT = 1 << 15;
+  static const int RIGHT_MANAGE_JOB = 1 << 16;
+  static const int RIGHT_MANAGE_PROCESS = 1 << 17;
+  static const int RIGHT_MANAGE_THREAD = 1 << 18;
+  static const int RIGHT_APPLY_PROFILE = 1 << 19;
+  static const int RIGHT_SAME_RIGHTS = 1 << 31;
+  static const int RIGHTS_BASIC =
+      RIGHT_TRANSFER | RIGHT_DUPLICATE | RIGHT_WAIT | RIGHT_INSPECT;
+  static const int RIGHTS_IO = RIGHT_READ | RIGHT_WRITE;
+  static const int RIGHTS_PROPERTY = RIGHT_GET_PROPERTY | RIGHT_SET_PROPERTY;
+  static const int RIGHTS_POLICY = RIGHT_GET_POLICY | RIGHT_SET_POLICY;
+  static const int DEFAULT_CHANNEL_RIGHTS =
+      (RIGHTS_BASIC & (~RIGHT_DUPLICATE)) |
+          RIGHTS_IO |
+          RIGHT_SIGNAL |
+          RIGHT_SIGNAL_PEER;
+  static const int DEFAULT_EVENT_RIGHTS = RIGHTS_BASIC | RIGHT_SIGNAL;
+  static const int DEFAULT_EVENTPAIR_RIGHTS =
+      RIGHTS_BASIC | RIGHT_SIGNAL | RIGHT_SIGNAL_PEER;
+  static const int DEFAULT_FIFO_RIGHTS =
+      RIGHTS_BASIC | RIGHTS_IO | RIGHT_SIGNAL | RIGHT_SIGNAL_PEER;
+  static const int DEFAULT_GUEST_RIGHTS = RIGHT_TRANSFER |
+      RIGHT_DUPLICATE |
+      RIGHT_WRITE |
+      RIGHT_INSPECT |
+      RIGHT_MANAGE_PROCESS;
+  static const int DEFAULT_INTERRUPT_RIGHTS =
+      RIGHTS_BASIC | RIGHTS_IO | RIGHT_SIGNAL;
+  static const int DEFAULT_IO_MAPPING_RIGHTS = RIGHT_READ | RIGHT_INSPECT;
+  static const int DEFAULT_JOB_RIGHTS = RIGHTS_BASIC |
+      RIGHTS_IO |
+      RIGHTS_PROPERTY |
+      RIGHTS_POLICY |
+      RIGHT_ENUMERATE |
+      RIGHT_DESTROY |
+      RIGHT_SIGNAL |
+      RIGHT_MANAGE_JOB |
+      RIGHT_MANAGE_PROCESS;
+  static const int DEFAULT_LOG_RIGHTS =
+      RIGHTS_BASIC | RIGHT_WRITE | RIGHT_SIGNAL;
+  static const int DEFAULT_PCI_DEVICE_RIGHTS = RIGHTS_BASIC | RIGHTS_IO;
+  static const int DEFAULT_PCI_INTERRUPT_RIGHTS =
+      RIGHTS_BASIC | RIGHTS_IO | RIGHT_SIGNAL;
+  static const int DEFAULT_PORT_RIGHTS =
+      (RIGHTS_BASIC & (~RIGHT_WAIT)) | RIGHTS_IO;
+  static const int DEFAULT_PROCESS_RIGHTS = RIGHTS_BASIC |
+      RIGHTS_IO |
+      RIGHTS_PROPERTY |
+      RIGHT_ENUMERATE |
+      RIGHT_DESTROY |
+      RIGHT_SIGNAL |
+      RIGHT_MANAGE_PROCESS |
+      RIGHT_MANAGE_THREAD;
+  static const int DEFAULT_RESOURCE_RIGHTS =
+      RIGHT_TRANSFER | RIGHT_DUPLICATE | RIGHT_WRITE | RIGHT_INSPECT;
+  static const int DEFAULT_SOCKET_RIGHTS = RIGHTS_BASIC |
+      RIGHTS_IO |
+      RIGHT_GET_PROPERTY |
+      RIGHT_SET_PROPERTY |
+      RIGHT_SIGNAL |
+      RIGHT_SIGNAL_PEER;
+  static const int DEFAULT_THREAD_RIGHTS = RIGHTS_BASIC |
+      RIGHTS_IO |
+      RIGHTS_PROPERTY |
+      RIGHT_DESTROY |
+      RIGHT_SIGNAL |
+      RIGHT_MANAGE_THREAD;
+  static const int DEFAULT_TIMER_RIGHTS =
+      RIGHTS_BASIC | RIGHT_WRITE | RIGHT_SIGNAL;
+  static const int DEFAULT_VCPU_RIGHTS =
+      RIGHTS_BASIC | RIGHTS_IO | RIGHT_EXECUTE | RIGHT_SIGNAL;
+  static const int DEFAULT_VMAR_RIGHTS = RIGHTS_BASIC & (~RIGHT_WAIT);
+  static const int DEFAULT_VMO_RIGHTS =
+      RIGHTS_BASIC | RIGHTS_IO | RIGHTS_PROPERTY | RIGHT_MAP | RIGHT_SIGNAL;
+  static const int DEFAULT_IOMMU_RIGHTS = RIGHTS_BASIC & (~RIGHT_WAIT);
+  static const int DEFAULT_BTI_RIGHTS =
+      (RIGHTS_BASIC & (~RIGHT_WAIT)) | RIGHTS_IO | RIGHT_MAP;
+  static const int DEFAULT_PROFILE_RIGHTS =
+      (RIGHTS_BASIC & (~RIGHT_WAIT)) | RIGHT_APPLY_PROFILE;
+  static const int DEFAULT_PMT_RIGHTS = RIGHT_INSPECT;
+  static const int DEFAULT_SUSPEND_TOKEN_RIGHTS =
+      RIGHT_TRANSFER | RIGHT_INSPECT;
+  static const int DEFAULT_PAGER_RIGHTS = RIGHT_INSPECT |
+      RIGHT_ENUMERATE |
+      RIGHT_GET_PROPERTY |
+      RIGHT_SET_PROPERTY |
+      RIGHT_TRANSFER;
 }
 
 String getStringForStatus(int status) {
diff --git a/public/dart/zircon/test-extract-zircon-constants.sh b/public/dart/zircon/test-extract-zircon-constants.sh
index f49ed2b..ffba228 100755
--- a/public/dart/zircon/test-extract-zircon-constants.sh
+++ b/public/dart/zircon/test-extract-zircon-constants.sh
@@ -8,9 +8,10 @@
 readonly DATA_DIR="$SCRIPT_ROOT/test_data/extract_zircon_constants"
 
 echo Testing extract-zircon-constants.py
-exec python $DATA_DIR/extract-zircon-constants.py \
+exec python "$DATA_DIR/extract-zircon-constants.py" \
   --dry-run \
   --errors "$DATA_DIR/errors.h" \
+  --rights "$DATA_DIR/rights.h" \
   --types "$DATA_DIR/types.h" \
   --dartfmt "$DATA_DIR/dartfmt" \
   --dart-constants "$DATA_DIR/constants.dart"
