null.js 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. function write(v) { WScript.Echo(v + ""); }
  6. var count = 0;
  7. var total = 0;
  8. var x = null;
  9. try { write(x.y); } catch (e) { write(count++ + " " + e.message); } total++;
  10. try { x.y = 5; } catch (e) { write(count++ + " " + e.message); } total++;
  11. try { delete x.y; } catch (e) { write(count++ + " " + e.message); } total++;
  12. try { write(x[6]); } catch (e) { write(count++ + " " + e.message); } total++;
  13. try { x[6] = 7; } catch (e) { write(count++ + " " + e.message); } total++;
  14. try { delete x[6] } catch (e) { write(count++ + " " + e.message); } total++;
  15. x = undefined;
  16. try { write(x.y); } catch (e) { write(count++ + " " + e.message); } total++;
  17. try { x.y = 5; } catch (e) { write(count++ + " " + e.message); } total++;
  18. try { delete x.y; } catch (e) { write(count++ + " " + e.message); } total++;
  19. try { write(x[6]); } catch (e) { write(count++ + " " + e.message); } total++;
  20. try { x[6] = 7; } catch (e) { write(count++ + " " + e.message); } total++;
  21. try { delete x[6] } catch (e) { write(count++ + " " + e.message); } total++;
  22. var a = [ null ];
  23. try { write(a[0].y); } catch (e) { write(count++ + " " + e.message); } total++;
  24. try { a[0].y = 5; } catch (e) { write(count++ + " " + e.message); } total++;
  25. try { delete a[0].y; } catch (e) { write(count++ + " " + e.message); } total++;
  26. try { write(a[0][6]); } catch (e) { write(count++ + " " + e.message); } total++;
  27. try { a[0][6] = 7; } catch (e) { write(count++ + " " + e.message); } total++;
  28. try { delete a[0][6] } catch (e) { write(count++ + " " + e.message); } total++;
  29. a = [ undefined ];
  30. try { write(a[0].y); } catch (e) { write(count++ + " " + e.message); } total++;
  31. try { a[0].y = 5; } catch (e) { write(count++ + " " + e.message); } total++;
  32. try { delete a[0].y; } catch (e) { write(count++ + " " + e.message); } total++;
  33. try { write(a[0][6]); } catch (e) { write(count++ + " " + e.message); } total++;
  34. try { a[0][6] = 7; } catch (e) { write(count++ + " " + e.message); } total++;
  35. try { delete a[0][6] } catch (e) { write(count++ + " " + e.message); } total++;
  36. var o = { z : null }
  37. try { write(o.z.y); } catch (e) { write(count++ + " " + e.message); } total++;
  38. try { o.z.y = 5; } catch (e) { write(count++ + " " + e.message); } total++;
  39. try { delete o.z.y; } catch (e) { write(count++ + " " + e.message); } total++;
  40. try { write(o.z[6]); } catch (e) { write(count++ + " " + e.message); } total++;
  41. try { o.z[6] = 7; } catch (e) { write(count++ + " " + e.message); } total++;
  42. try { delete o.z[6] } catch (e) { write(count++ + " " + e.message); } total++;
  43. o = { z : undefined }
  44. try { write(o.z.y); } catch (e) { write(count++ + " " + e.message); } total++;
  45. try { o.z.y = 5; } catch (e) { write(count++ + " " + e.message); } total++;
  46. try { delete o.z.y; } catch (e) { write(count++ + " " + e.message); } total++;
  47. try { write(o.z[6]); } catch (e) { write(count++ + " " + e.message); } total++;
  48. try { o.z[6] = 7; } catch (e) { write(count++ + " " + e.message); } total++;
  49. try { delete o.z[6] } catch (e) { write(count++ + " " + e.message); } total++;
  50. write("count: " + count + " total: " + total);