| OLD | NEW |
| 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 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 370 function FILTER_KEY(key) { | 370 function FILTER_KEY(key) { |
| 371 var string = %ToName(key); | 371 var string = %ToName(key); |
| 372 if (%HasProperty(this, string)) return string; | 372 if (%HasProperty(this, string)) return string; |
| 373 return 0; | 373 return 0; |
| 374 } | 374 } |
| 375 | 375 |
| 376 | 376 |
| 377 function CALL_NON_FUNCTION() { | 377 function CALL_NON_FUNCTION() { |
| 378 var delegate = %GetFunctionDelegate(this); | 378 var delegate = %GetFunctionDelegate(this); |
| 379 if (!IS_FUNCTION(delegate)) { | 379 if (!IS_FUNCTION(delegate)) { |
| 380 throw %MakeTypeError('called_non_callable', [typeof this]); | 380 var callsite = %RenderCallSite(); |
| 381 if (callsite == "") callsite = typeof this; |
| 382 throw %MakeTypeError('called_non_callable', [callsite]); |
| 381 } | 383 } |
| 382 return %Apply(delegate, this, arguments, 0, %_ArgumentsLength()); | 384 return %Apply(delegate, this, arguments, 0, %_ArgumentsLength()); |
| 383 } | 385 } |
| 384 | 386 |
| 385 | 387 |
| 386 function CALL_NON_FUNCTION_AS_CONSTRUCTOR() { | 388 function CALL_NON_FUNCTION_AS_CONSTRUCTOR() { |
| 387 var delegate = %GetConstructorDelegate(this); | 389 var delegate = %GetConstructorDelegate(this); |
| 388 if (!IS_FUNCTION(delegate)) { | 390 if (!IS_FUNCTION(delegate)) { |
| 389 throw %MakeTypeError('called_non_callable', [typeof this]); | 391 var callsite = %RenderCallSite(); |
| 392 if (callsite == "") callsite = typeof this; |
| 393 throw %MakeTypeError('called_non_callable', [callsite]); |
| 390 } | 394 } |
| 391 return %Apply(delegate, this, arguments, 0, %_ArgumentsLength()); | 395 return %Apply(delegate, this, arguments, 0, %_ArgumentsLength()); |
| 392 } | 396 } |
| 393 | 397 |
| 394 | 398 |
| 395 function CALL_FUNCTION_PROXY() { | 399 function CALL_FUNCTION_PROXY() { |
| 396 var arity = %_ArgumentsLength() - 1; | 400 var arity = %_ArgumentsLength() - 1; |
| 397 var proxy = %_Arguments(arity); // The proxy comes in as an additional arg. | 401 var proxy = %_Arguments(arity); // The proxy comes in as an additional arg. |
| 398 var trap = %GetCallTrap(proxy); | 402 var trap = %GetCallTrap(proxy); |
| 399 return %Apply(trap, this, arguments, 0, arity); | 403 return %Apply(trap, this, arguments, 0, arity); |
| (...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 683 return i; | 687 return i; |
| 684 } | 688 } |
| 685 | 689 |
| 686 | 690 |
| 687 // NOTE: Setting the prototype for Array must take place as early as | 691 // NOTE: Setting the prototype for Array must take place as early as |
| 688 // possible due to code generation for array literals. When | 692 // possible due to code generation for array literals. When |
| 689 // generating code for a array literal a boilerplate array is created | 693 // generating code for a array literal a boilerplate array is created |
| 690 // that is cloned when running the code. It is essential that the | 694 // that is cloned when running the code. It is essential that the |
| 691 // boilerplate gets the right prototype. | 695 // boilerplate gets the right prototype. |
| 692 %FunctionSetPrototype($Array, new $Array(0)); | 696 %FunctionSetPrototype($Array, new $Array(0)); |
| OLD | NEW |