Flags Vs Bools (v6)

Revision 6 of this benchmark created on


Setup

var CREATE = 1 << 0,
        READ = 1 << 1,
        UPDATE = 1 << 2,
        DELETE = 1 << 3,
        CRUD = CREATE ^ READ ^ UPDATE ^ DELETE,
        PERMISSIONS,
        permissions_create = false,
        permissions_read = false,
        permissions_update = false,
        permissions_delete = false;

Test runner

Ready to run.

Testing in
TestOps/sec
Bitmasks
// Set PERMISSIONS to full CRUD
PERMISSIONS |= CRUD;

// Remove DELETE permision
PERMISSIONS &= ~DELETE;

// Toggle CREATE permissions twice
PERMISSIONS ^= CREATE;
PERMISSIONS ^= CREATE;

// Check READ permissions
if (PERMISSIONS & READ) {
  // Remove UPDATE permissions
  PERMISSIONS &= ~UPDATE;
}
ready
Bools
// Set permissions to full CRUD
permissions_create = true;
permissions_read = true;
permissions_update = true;
permissions_delete = true;

// Remove DELETE permision
permissions_delete = false;

// Toggle CREATE permissions twice
permissions_create = !permissions_create;
permissions_create = !permissions_create;

// Check READ permissions
if (permissions_read) {
  // Remove UPDATE permissions
  permissions_update = false;
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.