OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2012 the V8 project authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 // | |
5 // This file relies on the fact that the following declarations have been made | |
6 // in runtime.js: | |
7 // var $Function = global.Function; | |
8 // var $Array = global.Array; | |
9 | |
10 | |
11 (function() { | |
12 function FunctionToMethod(homeObject) { | |
13 if (!IS_SPEC_FUNCTION(this)) { | |
14 throw MakeTypeError('toMethod_non_function', | |
15 [%ToString(this), typeof this]); | |
arv (Not doing code reviews)
2014/08/15 22:28:47
Maybe TO_STRING_INLINE?
Dmitry Lomov (no reviews)
2014/08/15 22:56:57
This is an error case, fine without inlining.
| |
16 | |
17 } | |
18 | |
19 if (!IS_SPEC_OBJECT(homeObject)) { | |
arv (Not doing code reviews)
2014/08/15 22:28:47
This is wrong order. This test should come before
Dmitry Lomov (no reviews)
2014/08/15 22:56:57
Good catch. This must be a spec bug. Will file.
| |
20 throw MakeTypeError('toMethod_non_object'); | |
arv (Not doing code reviews)
2014/08/15 22:28:47
Maybe include homeObject in the error message?
Dmitry Lomov (no reviews)
2014/08/15 22:56:57
Done.
| |
21 } | |
22 | |
23 return %ToMethod(this, homeObject); | |
24 } | |
25 | |
26 %CheckIsBootstrapping(); | |
27 | |
28 InstallFunctions($Function.prototype, DONT_ENUM, $Array( | |
29 "toMethod", FunctionToMethod | |
arv (Not doing code reviews)
2014/08/15 22:28:47
wrong indentation
Dmitry Lomov (no reviews)
2014/08/15 22:56:57
Done.
| |
30 )); | |
31 }()); | |
OLD | NEW |