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.
|
+ )); |
+}()); |