| Index: src/v8natives.js
|
| diff --git a/src/v8natives.js b/src/v8natives.js
|
| index 7d8b78a6b2f4ee249510421725e05328a8de8159..9c6cc2aeab03fdea6c423e844afdd858a0172179 100644
|
| --- a/src/v8natives.js
|
| +++ b/src/v8natives.js
|
| @@ -218,7 +218,7 @@ function ObjectDefineGetter(name, fun) {
|
| if (IS_NULL(receiver) || IS_UNDEFINED(receiver)) {
|
| receiver = %GlobalProxy(ObjectDefineGetter);
|
| }
|
| - if (!IS_SPEC_FUNCTION(fun)) {
|
| + if (!IS_CALLABLE(fun)) {
|
| throw MakeTypeError(kObjectGetterExpectingFunction);
|
| }
|
| var desc = new PropertyDescriptor();
|
| @@ -243,7 +243,7 @@ function ObjectDefineSetter(name, fun) {
|
| if (IS_NULL(receiver) || IS_UNDEFINED(receiver)) {
|
| receiver = %GlobalProxy(ObjectDefineSetter);
|
| }
|
| - if (!IS_SPEC_FUNCTION(fun)) {
|
| + if (!IS_CALLABLE(fun)) {
|
| throw MakeTypeError(kObjectSetterExpectingFunction);
|
| }
|
| var desc = new PropertyDescriptor();
|
| @@ -369,7 +369,7 @@ function ToPropertyDescriptor(obj) {
|
|
|
| if ("get" in obj) {
|
| var get = obj.get;
|
| - if (!IS_UNDEFINED(get) && !IS_SPEC_FUNCTION(get)) {
|
| + if (!IS_UNDEFINED(get) && !IS_CALLABLE(get)) {
|
| throw MakeTypeError(kObjectGetterCallable, get);
|
| }
|
| desc.setGet(get);
|
| @@ -377,7 +377,7 @@ function ToPropertyDescriptor(obj) {
|
|
|
| if ("set" in obj) {
|
| var set = obj.set;
|
| - if (!IS_UNDEFINED(set) && !IS_SPEC_FUNCTION(set)) {
|
| + if (!IS_UNDEFINED(set) && !IS_CALLABLE(set)) {
|
| throw MakeTypeError(kObjectSetterCallable, set);
|
| }
|
| desc.setSet(set);
|
| @@ -537,7 +537,7 @@ function GetTrap(handler, name, defaultTrap) {
|
| throw MakeTypeError(kProxyHandlerTrapMissing, handler, name);
|
| }
|
| trap = defaultTrap;
|
| - } else if (!IS_SPEC_FUNCTION(trap)) {
|
| + } else if (!IS_CALLABLE(trap)) {
|
| throw MakeTypeError(kProxyHandlerTrapMustBeCallable, handler, name);
|
| }
|
| return trap;
|
| @@ -606,7 +606,7 @@ function Delete(obj, p, should_throw) {
|
| function GetMethod(obj, p) {
|
| var func = obj[p];
|
| if (IS_NULL_OR_UNDEFINED(func)) return UNDEFINED;
|
| - if (IS_SPEC_FUNCTION(func)) return func;
|
| + if (IS_CALLABLE(func)) return func;
|
| throw MakeTypeError(kCalledNonCallable, typeof func);
|
| }
|
|
|
| @@ -1659,7 +1659,7 @@ function FunctionToString() {
|
|
|
| // ES5 15.3.4.5
|
| function FunctionBind(this_arg) { // Length is 1.
|
| - if (!IS_SPEC_FUNCTION(this)) throw MakeTypeError(kFunctionBind);
|
| + if (!IS_CALLABLE(this)) throw MakeTypeError(kFunctionBind);
|
|
|
| var boundFunction = function () {
|
| // Poison .arguments and .caller, but is otherwise not detectable.
|
| @@ -1775,7 +1775,7 @@ function GetIterator(obj, method) {
|
| if (IS_UNDEFINED(method)) {
|
| method = obj[symbolIterator];
|
| }
|
| - if (!IS_SPEC_FUNCTION(method)) {
|
| + if (!IS_CALLABLE(method)) {
|
| throw MakeTypeError(kNotIterable, obj);
|
| }
|
| var iterator = %_CallFunction(obj, method);
|
|
|