'use strict';

var keys  = require('./keys')

  , unset = function (key) { delete this[key]; };

module.exports = function (obj) {
	keys(obj).forEach(unset, obj);
	return obj;
};

@@ -17,17 +17,16 @@
 ar keys 
- 
 = requir
@@ -40,22 +40,76 @@
 ys')
+;
 %0A%0A
-  , unset = 
+module.exports = function (obj) %7B%0A%09var error;%0A%09keys(obj).forEach(
 func
@@ -120,17 +120,28 @@
  (key) %7B
- 
+%0A%09%09try %7B%0A%09%09%09
 delete t
@@ -153,77 +153,102 @@
 ey%5D;
- %7D;%0A%0Amodule.exports = function (obj) %7B%0A%09keys(obj).forEach(unset, obj)
+%0A%09%09%7D catch (e) %7B%0A%09%09%09if (!error) error = e;%0A%09%09%7D%0A%09%7D, obj);%0A%09if (error !== undefined) throw error
 ;%0A%09r

Add `assign` like error handling to `Object.clear`