Shouldn't the inner `Object.create` be returned at this point so that the value of "create" will be set, in the event that the outer `Object.create` evaluates to `undefined`? As it is, if the OR condition fails, `create` will be set to undefined as nothing is returned from the self-invoking function.