Chromium Code Reviews| Index: src/harmony-classes.js |
| diff --git a/src/harmony-classes.js b/src/harmony-classes.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..d7b088d12396e25706525a404b1abb5f72b98b87 |
| --- /dev/null |
| +++ b/src/harmony-classes.js |
| @@ -0,0 +1,31 @@ |
| +// Copyright 2012 the V8 project authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| +// |
| +// This file relies on the fact that the following declarations have been made |
| +// in runtime.js: |
| +// var $Function = global.Function; |
| +// var $Array = global.Array; |
| + |
| + |
| +(function() { |
| + function FunctionToMethod(homeObject) { |
| + if (!IS_SPEC_FUNCTION(this)) { |
| + throw MakeTypeError('toMethod_non_function', |
| + [%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.
|
| + |
| + } |
| + |
| + 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.
|
| + 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.
|
| + } |
| + |
| + return %ToMethod(this, homeObject); |
| + } |
| + |
| + %CheckIsBootstrapping(); |
| + |
| + InstallFunctions($Function.prototype, DONT_ENUM, $Array( |
| + "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.
|
| + )); |
| +}()); |