var objectProxy = new Proxy({}, {});
var functionProxy = new Proxy(function() {}, {});

assertEq(Object.prototype.toString.call(objectProxy), '[object Object]');
assertEq(Object.prototype.toString.call(functionProxy), '[object Function]');
try {
  Function.prototype.toString.call(functionProxy);
  assertEq(true, false);
} catch (e) {
  assertEq(!!/incompatible/.exec(e), true);
}
try {
  Function.prototype.toString.call(objectProxy);
  assertEq(true, false);
} catch (e) {
  assertEq(!!/incompatible/.exec(e), true);
}