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

Side by Side Diff: src/runtime.js

Issue 1130073005: Revert of Migrate error messages, part 10. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 7 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/objects.cc ('k') | src/runtime/runtime-classes.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This files contains runtime support implemented in JavaScript. 5 // This files contains runtime support implemented in JavaScript.
6 6
7 // CAUTION: Some of the functions specified in this file are called 7 // CAUTION: Some of the functions specified in this file are called
8 // directly from compiled code. These are the functions with names in 8 // directly from compiled code. These are the functions with names in
9 // ALL CAPS. The compiled code passes the first argument in 'this'. 9 // ALL CAPS. The compiled code passes the first argument in 'this'.
10 10
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 return %NumberAdd(%$toNumber(a), %$toNumber(b)); 228 return %NumberAdd(%$toNumber(a), %$toNumber(b));
229 } 229 }
230 } 230 }
231 231
232 232
233 // Strong mode ADD throws if an implicit conversion would be performed 233 // Strong mode ADD throws if an implicit conversion would be performed
234 ADD_STRONG = function ADD_STRONG(x) { 234 ADD_STRONG = function ADD_STRONG(x) {
235 if (IS_NUMBER(this) && IS_NUMBER(x)) return %NumberAdd(this, x); 235 if (IS_NUMBER(this) && IS_NUMBER(x)) return %NumberAdd(this, x);
236 if (IS_STRING(this) && IS_STRING(x)) return %_StringAdd(this, x); 236 if (IS_STRING(this) && IS_STRING(x)) return %_StringAdd(this, x);
237 237
238 throw %MakeTypeError(kStrongImplicitCast); 238 throw %MakeTypeError('strong_implicit_cast');
239 } 239 }
240 240
241 241
242 // Left operand (this) is already a string. 242 // Left operand (this) is already a string.
243 STRING_ADD_LEFT = function STRING_ADD_LEFT(y) { 243 STRING_ADD_LEFT = function STRING_ADD_LEFT(y) {
244 if (!IS_STRING(y)) { 244 if (!IS_STRING(y)) {
245 if (IS_STRING_WRAPPER(y) && %_IsStringWrapperSafeForDefaultValueOf(y)) { 245 if (IS_STRING_WRAPPER(y) && %_IsStringWrapperSafeForDefaultValueOf(y)) {
246 y = %_ValueOf(y); 246 y = %_ValueOf(y);
247 } else { 247 } else {
248 y = IS_NUMBER(y) 248 y = IS_NUMBER(y)
249 ? %_NumberToString(y) 249 ? %_NumberToString(y)
250 : %$toString(%$toPrimitive(y, NO_HINT)); 250 : %$toString(%$toPrimitive(y, NO_HINT));
251 } 251 }
252 } 252 }
253 return %_StringAdd(this, y); 253 return %_StringAdd(this, y);
254 } 254 }
255 255
256 256
257 // Left operand (this) is already a string. 257 // Left operand (this) is already a string.
258 STRING_ADD_LEFT_STRONG = function STRING_ADD_LEFT_STRONG(y) { 258 STRING_ADD_LEFT_STRONG = function STRING_ADD_LEFT_STRONG(y) {
259 if (IS_STRING(y)) { 259 if (IS_STRING(y)) {
260 return %_StringAdd(this, y); 260 return %_StringAdd(this, y);
261 } 261 }
262 throw %MakeTypeError(kStrongImplicitCast); 262 throw %MakeTypeError('strong_implicit_cast');
263 } 263 }
264 264
265 265
266 // Right operand (y) is already a string. 266 // Right operand (y) is already a string.
267 STRING_ADD_RIGHT = function STRING_ADD_RIGHT(y) { 267 STRING_ADD_RIGHT = function STRING_ADD_RIGHT(y) {
268 var x = this; 268 var x = this;
269 if (!IS_STRING(x)) { 269 if (!IS_STRING(x)) {
270 if (IS_STRING_WRAPPER(x) && %_IsStringWrapperSafeForDefaultValueOf(x)) { 270 if (IS_STRING_WRAPPER(x) && %_IsStringWrapperSafeForDefaultValueOf(x)) {
271 x = %_ValueOf(x); 271 x = %_ValueOf(x);
272 } else { 272 } else {
273 x = IS_NUMBER(x) 273 x = IS_NUMBER(x)
274 ? %_NumberToString(x) 274 ? %_NumberToString(x)
275 : %$toString(%$toPrimitive(x, NO_HINT)); 275 : %$toString(%$toPrimitive(x, NO_HINT));
276 } 276 }
277 } 277 }
278 return %_StringAdd(x, y); 278 return %_StringAdd(x, y);
279 } 279 }
280 280
281 281
282 // Right operand (y) is already a string. 282 // Right operand (y) is already a string.
283 STRING_ADD_RIGHT_STRONG = function STRING_ADD_RIGHT_STRONG(y) { 283 STRING_ADD_RIGHT_STRONG = function STRING_ADD_RIGHT_STRONG(y) {
284 if (IS_STRING(this)) { 284 if (IS_STRING(this)) {
285 return %_StringAdd(this, y); 285 return %_StringAdd(this, y);
286 } 286 }
287 throw %MakeTypeError(kStrongImplicitCast); 287 throw %MakeTypeError('strong_implicit_cast');
288 } 288 }
289 289
290 290
291 // ECMA-262, section 11.6.2, page 50. 291 // ECMA-262, section 11.6.2, page 50.
292 SUB = function SUB(y) { 292 SUB = function SUB(y) {
293 var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this); 293 var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this);
294 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y); 294 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
295 return %NumberSub(x, y); 295 return %NumberSub(x, y);
296 } 296 }
297 297
298 298
299 // Strong mode SUB throws if an implicit conversion would be performed 299 // Strong mode SUB throws if an implicit conversion would be performed
300 SUB_STRONG = function SUB_STRONG(y) { 300 SUB_STRONG = function SUB_STRONG(y) {
301 if (IS_NUMBER(this) && IS_NUMBER(y)) { 301 if (IS_NUMBER(this) && IS_NUMBER(y)) {
302 return %NumberSub(this, y); 302 return %NumberSub(this, y);
303 } 303 }
304 throw %MakeTypeError(kStrongImplicitCast); 304 throw %MakeTypeError('strong_implicit_cast');
305 } 305 }
306 306
307 307
308 // ECMA-262, section 11.5.1, page 48. 308 // ECMA-262, section 11.5.1, page 48.
309 MUL = function MUL(y) { 309 MUL = function MUL(y) {
310 var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this); 310 var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this);
311 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y); 311 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
312 return %NumberMul(x, y); 312 return %NumberMul(x, y);
313 } 313 }
314 314
315 315
316 // Strong mode MUL throws if an implicit conversion would be performed 316 // Strong mode MUL throws if an implicit conversion would be performed
317 MUL_STRONG = function MUL_STRONG(y) { 317 MUL_STRONG = function MUL_STRONG(y) {
318 if (IS_NUMBER(this) && IS_NUMBER(y)) { 318 if (IS_NUMBER(this) && IS_NUMBER(y)) {
319 return %NumberMul(this, y); 319 return %NumberMul(this, y);
320 } 320 }
321 throw %MakeTypeError(kStrongImplicitCast); 321 throw %MakeTypeError('strong_implicit_cast');
322 } 322 }
323 323
324 324
325 // ECMA-262, section 11.5.2, page 49. 325 // ECMA-262, section 11.5.2, page 49.
326 DIV = function DIV(y) { 326 DIV = function DIV(y) {
327 var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this); 327 var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this);
328 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y); 328 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
329 return %NumberDiv(x, y); 329 return %NumberDiv(x, y);
330 } 330 }
331 331
332 332
333 // Strong mode DIV throws if an implicit conversion would be performed 333 // Strong mode DIV throws if an implicit conversion would be performed
334 DIV_STRONG = function DIV_STRONG(y) { 334 DIV_STRONG = function DIV_STRONG(y) {
335 if (IS_NUMBER(this) && IS_NUMBER(y)) { 335 if (IS_NUMBER(this) && IS_NUMBER(y)) {
336 return %NumberDiv(this, y); 336 return %NumberDiv(this, y);
337 } 337 }
338 throw %MakeTypeError(kStrongImplicitCast); 338 throw %MakeTypeError('strong_implicit_cast');
339 } 339 }
340 340
341 341
342 // ECMA-262, section 11.5.3, page 49. 342 // ECMA-262, section 11.5.3, page 49.
343 MOD = function MOD(y) { 343 MOD = function MOD(y) {
344 var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this); 344 var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this);
345 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y); 345 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
346 return %NumberMod(x, y); 346 return %NumberMod(x, y);
347 } 347 }
348 348
349 349
350 // Strong mode MOD throws if an implicit conversion would be performed 350 // Strong mode MOD throws if an implicit conversion would be performed
351 MOD_STRONG = function MOD_STRONG(y) { 351 MOD_STRONG = function MOD_STRONG(y) {
352 if (IS_NUMBER(this) && IS_NUMBER(y)) { 352 if (IS_NUMBER(this) && IS_NUMBER(y)) {
353 return %NumberMod(this, y); 353 return %NumberMod(this, y);
354 } 354 }
355 throw %MakeTypeError(kStrongImplicitCast); 355 throw %MakeTypeError('strong_implicit_cast');
356 } 356 }
357 357
358 358
359 /* ------------------------------------------- 359 /* -------------------------------------------
360 - - - B i t o p e r a t i o n s - - - 360 - - - B i t o p e r a t i o n s - - -
361 ------------------------------------------- 361 -------------------------------------------
362 */ 362 */
363 363
364 // ECMA-262, section 11.10, page 57. 364 // ECMA-262, section 11.10, page 57.
365 BIT_OR = function BIT_OR(y) { 365 BIT_OR = function BIT_OR(y) {
366 var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this); 366 var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this);
367 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y); 367 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
368 return %NumberOr(x, y); 368 return %NumberOr(x, y);
369 } 369 }
370 370
371 371
372 // Strong mode BIT_OR throws if an implicit conversion would be performed 372 // Strong mode BIT_OR throws if an implicit conversion would be performed
373 BIT_OR_STRONG = function BIT_OR_STRONG(y) { 373 BIT_OR_STRONG = function BIT_OR_STRONG(y) {
374 if (IS_NUMBER(this) && IS_NUMBER(y)) { 374 if (IS_NUMBER(this) && IS_NUMBER(y)) {
375 return %NumberOr(this, y); 375 return %NumberOr(this, y);
376 } 376 }
377 throw %MakeTypeError(kStrongImplicitCast); 377 throw %MakeTypeError('strong_implicit_cast');
378 } 378 }
379 379
380 380
381 // ECMA-262, section 11.10, page 57. 381 // ECMA-262, section 11.10, page 57.
382 BIT_AND = function BIT_AND(y) { 382 BIT_AND = function BIT_AND(y) {
383 var x; 383 var x;
384 if (IS_NUMBER(this)) { 384 if (IS_NUMBER(this)) {
385 x = this; 385 x = this;
386 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y); 386 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
387 } else { 387 } else {
(...skipping 10 matching lines...) Expand all
398 } 398 }
399 return %NumberAnd(x, y); 399 return %NumberAnd(x, y);
400 } 400 }
401 401
402 402
403 // Strong mode BIT_AND throws if an implicit conversion would be performed 403 // Strong mode BIT_AND throws if an implicit conversion would be performed
404 BIT_AND_STRONG = function BIT_AND_STRONG(y) { 404 BIT_AND_STRONG = function BIT_AND_STRONG(y) {
405 if (IS_NUMBER(this) && IS_NUMBER(y)) { 405 if (IS_NUMBER(this) && IS_NUMBER(y)) {
406 return %NumberAnd(this, y); 406 return %NumberAnd(this, y);
407 } 407 }
408 throw %MakeTypeError(kStrongImplicitCast); 408 throw %MakeTypeError('strong_implicit_cast');
409 } 409 }
410 410
411 411
412 // ECMA-262, section 11.10, page 57. 412 // ECMA-262, section 11.10, page 57.
413 BIT_XOR = function BIT_XOR(y) { 413 BIT_XOR = function BIT_XOR(y) {
414 var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this); 414 var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this);
415 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y); 415 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
416 return %NumberXor(x, y); 416 return %NumberXor(x, y);
417 } 417 }
418 418
419 419
420 // Strong mode BIT_XOR throws if an implicit conversion would be performed 420 // Strong mode BIT_XOR throws if an implicit conversion would be performed
421 BIT_XOR_STRONG = function BIT_XOR_STRONG(y) { 421 BIT_XOR_STRONG = function BIT_XOR_STRONG(y) {
422 if (IS_NUMBER(this) && IS_NUMBER(y)) { 422 if (IS_NUMBER(this) && IS_NUMBER(y)) {
423 return %NumberXor(this, y); 423 return %NumberXor(this, y);
424 } 424 }
425 throw %MakeTypeError(kStrongImplicitCast); 425 throw %MakeTypeError('strong_implicit_cast');
426 } 426 }
427 427
428 428
429 // ECMA-262, section 11.7.1, page 51. 429 // ECMA-262, section 11.7.1, page 51.
430 SHL = function SHL(y) { 430 SHL = function SHL(y) {
431 var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this); 431 var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this);
432 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y); 432 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
433 return %NumberShl(x, y); 433 return %NumberShl(x, y);
434 } 434 }
435 435
436 436
437 // Strong mode SHL throws if an implicit conversion would be performed 437 // Strong mode SHL throws if an implicit conversion would be performed
438 SHL_STRONG = function SHL_STRONG(y) { 438 SHL_STRONG = function SHL_STRONG(y) {
439 if (IS_NUMBER(this) && IS_NUMBER(y)) { 439 if (IS_NUMBER(this) && IS_NUMBER(y)) {
440 return %NumberShl(this, y); 440 return %NumberShl(this, y);
441 } 441 }
442 throw %MakeTypeError(kStrongImplicitCast); 442 throw %MakeTypeError('strong_implicit_cast');
443 } 443 }
444 444
445 445
446 // ECMA-262, section 11.7.2, page 51. 446 // ECMA-262, section 11.7.2, page 51.
447 SAR = function SAR(y) { 447 SAR = function SAR(y) {
448 var x; 448 var x;
449 if (IS_NUMBER(this)) { 449 if (IS_NUMBER(this)) {
450 x = this; 450 x = this;
451 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y); 451 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
452 } else { 452 } else {
(...skipping 10 matching lines...) Expand all
463 } 463 }
464 return %NumberSar(x, y); 464 return %NumberSar(x, y);
465 } 465 }
466 466
467 467
468 // Strong mode SAR throws if an implicit conversion would be performed 468 // Strong mode SAR throws if an implicit conversion would be performed
469 SAR_STRONG = function SAR_STRONG(y) { 469 SAR_STRONG = function SAR_STRONG(y) {
470 if (IS_NUMBER(this) && IS_NUMBER(y)) { 470 if (IS_NUMBER(this) && IS_NUMBER(y)) {
471 return %NumberSar(this, y); 471 return %NumberSar(this, y);
472 } 472 }
473 throw %MakeTypeError(kStrongImplicitCast); 473 throw %MakeTypeError('strong_implicit_cast');
474 } 474 }
475 475
476 476
477 // ECMA-262, section 11.7.3, page 52. 477 // ECMA-262, section 11.7.3, page 52.
478 SHR = function SHR(y) { 478 SHR = function SHR(y) {
479 var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this); 479 var x = IS_NUMBER(this) ? this : %$nonNumberToNumber(this);
480 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y); 480 if (!IS_NUMBER(y)) y = %$nonNumberToNumber(y);
481 return %NumberShr(x, y); 481 return %NumberShr(x, y);
482 } 482 }
483 483
484 484
485 // Strong mode SHR throws if an implicit conversion would be performed 485 // Strong mode SHR throws if an implicit conversion would be performed
486 SHR_STRONG = function SHR_STRONG(y) { 486 SHR_STRONG = function SHR_STRONG(y) {
487 if (IS_NUMBER(this) && IS_NUMBER(y)) { 487 if (IS_NUMBER(this) && IS_NUMBER(y)) {
488 return %NumberShr(this, y); 488 return %NumberShr(this, y);
489 } 489 }
490 throw %MakeTypeError(kStrongImplicitCast); 490 throw %MakeTypeError('strong_implicit_cast');
491 } 491 }
492 492
493 493
494 /* ----------------------------- 494 /* -----------------------------
495 - - - H e l p e r s - - - 495 - - - H e l p e r s - - -
496 ----------------------------- 496 -----------------------------
497 */ 497 */
498 498
499 // ECMA-262, section 11.4.1, page 46. 499 // ECMA-262, section 11.4.1, page 46.
500 DELETE = function DELETE(key, language_mode) { 500 DELETE = function DELETE(key, language_mode) {
(...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after
991 $toLength = ToLength; 991 $toLength = ToLength;
992 $toName = ToName; 992 $toName = ToName;
993 $toNumber = ToNumber; 993 $toNumber = ToNumber;
994 $toObject = ToObject; 994 $toObject = ToObject;
995 $toPositiveInteger = ToPositiveInteger; 995 $toPositiveInteger = ToPositiveInteger;
996 $toPrimitive = ToPrimitive; 996 $toPrimitive = ToPrimitive;
997 $toString = ToString; 997 $toString = ToString;
998 $toUint32 = ToUint32; 998 $toUint32 = ToUint32;
999 999
1000 })(); 1000 })();
OLDNEW
« no previous file with comments | « src/objects.cc ('k') | src/runtime/runtime-classes.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698