Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Side by Side Diff: test/mjsunit/array-length.js

Issue 1198253002: Remove broken optimization unwrapping number wrappers on setting array.length (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/accessors.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2008 the V8 project authors. All rights reserved. 1 // Copyright 2008 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 assertEquals(1000, a[1000]); 98 assertEquals(1000, a[1000]);
99 assertEquals(Math.pow(2,30)-1, a[Math.pow(2,30)-1]); 99 assertEquals(Math.pow(2,30)-1, a[Math.pow(2,30)-1]);
100 assertEquals('undefined', typeof a[Math.pow(2,31)-1]); 100 assertEquals('undefined', typeof a[Math.pow(2,31)-1]);
101 assertEquals('undefined', typeof a[Math.pow(2,32)-2], "top"); 101 assertEquals('undefined', typeof a[Math.pow(2,32)-2], "top");
102 102
103 103
104 var a = new Array(); 104 var a = new Array();
105 assertEquals(Object(12), a.length = new Number(12)); 105 assertEquals(Object(12), a.length = new Number(12));
106 assertEquals(12, a.length); 106 assertEquals(12, a.length);
107 107
108 Number.prototype.valueOf = function() { return 10; }
109 var n = new Number(100);
110 assertEquals(n, a.length = n);
111 assertEquals(10, a.length);
112 n.valueOf = function() { return 20; }
113 assertEquals(n, a.length = n);
114 assertEquals(20, a.length);
108 115
109 var o = { length: -23 }; 116 var o = { length: -23 };
110 Array.prototype.pop.apply(o); 117 Array.prototype.pop.apply(o);
111 assertEquals(4294967272, o.length); 118 assertEquals(4294967272, o.length);
112 119
113 // Check case of compiled stubs. 120 // Check case of compiled stubs.
114 var a = []; 121 var a = [];
115 for (var i = 0; i < 7; i++) { 122 for (var i = 0; i < 7; i++) {
116 assertEquals(3, a.length = 3); 123 assertEquals(3, a.length = 3);
117 124
118 var t = 239; 125 var t = 239;
119 t = a.length = 7; 126 t = a.length = 7;
120 assertEquals(7, t); 127 assertEquals(7, t);
121 } 128 }
122 129
123 (function () { 130 (function () {
124 "use strict"; 131 "use strict";
125 var frozen_object = Object.freeze({__proto__:[]}); 132 var frozen_object = Object.freeze({__proto__:[]});
126 assertThrows(function () { frozen_object.length = 10 }); 133 assertThrows(function () { frozen_object.length = 10 });
127 })(); 134 })();
OLDNEW
« no previous file with comments | « src/accessors.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698