@rlauck eliminated Object.defineProperty and with() by using plain function calls. Down to 391 bytes.