/js/src/jit-test/tests/basic/testSetPropertyFail.js

http://github.com/zpao/v8monkey · JavaScript · 22 lines · 20 code · 2 blank · 0 comment · 1 complexity · 88c80f27d7704c102a0e8a4a039ca9f7 MD5 · raw file

  1. function test(name, fn, val) {
  2. gc();
  3. var ok = {}, bad = {};
  4. bad.__defineSetter__(name, fn);
  5. var arr = [ok, ok, ok, ok, ok, bad];
  6. var log = '';
  7. try {
  8. for (var i = 0; i < arr.length; i++) {
  9. arr[i][name] = val;
  10. log += '.';
  11. }
  12. } catch (exc) {
  13. log += 'E';
  14. }
  15. assertEq(log, '.....E');
  16. }
  17. test("x", Function.prototype.call, null); // TypeError: Function.prototype.call called on incompatible [object Object]
  18. test("y", Array, 0.1); // RangeError: invalid array length
  19. test(1, Function.prototype.call, null); // TypeError: Function.prototype.call called on incompatible [object Object]
  20. test(1, Array, 0.1); // RangeError: invalid array length