Commit 613e29b1 authored by jgruber's avatar jgruber Committed by Commit bot

Move family of MakeError functions to C++

These were the final remnants of error code written in JavaScript.

BUG=

Review-Url: https://codereview.chromium.org/2222893002
Cr-Commit-Position: refs/heads/master@{#38475}
parent c1ae15d9
...@@ -1051,6 +1051,15 @@ static void InstallError(Isolate* isolate, Handle<JSObject> global, ...@@ -1051,6 +1051,15 @@ static void InstallError(Isolate* isolate, Handle<JSObject> global,
} }
} }
static void InstallMakeError(Isolate* isolate, Handle<Code> code,
int context_index) {
Handle<JSFunction> function =
isolate->factory()->NewFunction(isolate->factory()->empty_string(), code,
JS_OBJECT_TYPE, JSObject::kHeaderSize);
function->shared()->DontAdaptArguments();
isolate->native_context()->set(context_index, *function);
}
// This is only called if we are not using snapshots. The equivalent // This is only called if we are not using snapshots. The equivalent
// work in the snapshot case is done in HookUpGlobalObject. // work in the snapshot case is done in HookUpGlobalObject.
void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object, void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
...@@ -1600,6 +1609,8 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object, ...@@ -1600,6 +1609,8 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
{ // -- E r r o r { // -- E r r o r
InstallError(isolate, global, factory->Error_string(), InstallError(isolate, global, factory->Error_string(),
Context::ERROR_FUNCTION_INDEX); Context::ERROR_FUNCTION_INDEX);
InstallMakeError(isolate, isolate->builtins()->MakeError(),
Context::MAKE_ERROR_INDEX);
} }
{ // -- E v a l E r r o r { // -- E v a l E r r o r
...@@ -1610,6 +1621,8 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object, ...@@ -1610,6 +1621,8 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
{ // -- R a n g e E r r o r { // -- R a n g e E r r o r
InstallError(isolate, global, factory->RangeError_string(), InstallError(isolate, global, factory->RangeError_string(),
Context::RANGE_ERROR_FUNCTION_INDEX); Context::RANGE_ERROR_FUNCTION_INDEX);
InstallMakeError(isolate, isolate->builtins()->MakeRangeError(),
Context::MAKE_RANGE_ERROR_INDEX);
} }
{ // -- R e f e r e n c e E r r o r { // -- R e f e r e n c e E r r o r
...@@ -1620,16 +1633,22 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object, ...@@ -1620,16 +1633,22 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
{ // -- S y n t a x E r r o r { // -- S y n t a x E r r o r
InstallError(isolate, global, factory->SyntaxError_string(), InstallError(isolate, global, factory->SyntaxError_string(),
Context::SYNTAX_ERROR_FUNCTION_INDEX); Context::SYNTAX_ERROR_FUNCTION_INDEX);
InstallMakeError(isolate, isolate->builtins()->MakeSyntaxError(),
Context::MAKE_SYNTAX_ERROR_INDEX);
} }
{ // -- T y p e E r r o r { // -- T y p e E r r o r
InstallError(isolate, global, factory->TypeError_string(), InstallError(isolate, global, factory->TypeError_string(),
Context::TYPE_ERROR_FUNCTION_INDEX); Context::TYPE_ERROR_FUNCTION_INDEX);
InstallMakeError(isolate, isolate->builtins()->MakeTypeError(),
Context::MAKE_TYPE_ERROR_INDEX);
} }
{ // -- U R I E r r o r { // -- U R I E r r o r
InstallError(isolate, global, factory->URIError_string(), InstallError(isolate, global, factory->URIError_string(),
Context::URI_ERROR_FUNCTION_INDEX); Context::URI_ERROR_FUNCTION_INDEX);
InstallMakeError(isolate, isolate->builtins()->MakeURIError(),
Context::MAKE_URI_ERROR_INDEX);
} }
// Initialize the embedder data slot. // Initialize the embedder data slot.
...@@ -2477,7 +2496,7 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate, ...@@ -2477,7 +2496,7 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
// Builtin functions for Script. // Builtin functions for Script.
Handle<JSFunction> script_fun = InstallFunction( Handle<JSFunction> script_fun = InstallFunction(
container, "Script", JS_VALUE_TYPE, JSValue::kSize, container, "Script", JS_VALUE_TYPE, JSValue::kSize,
isolate->initial_object_prototype(), Builtins::kIllegal); isolate->initial_object_prototype(), Builtins::kUnsupportedThrower);
Handle<JSObject> prototype = Handle<JSObject> prototype =
factory->NewJSObject(isolate->object_function(), TENURED); factory->NewJSObject(isolate->object_function(), TENURED);
Accessors::FunctionSetPrototype(script_fun, prototype).Assert(); Accessors::FunctionSetPrototype(script_fun, prototype).Assert();
...@@ -2714,13 +2733,6 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate, ...@@ -2714,13 +2733,6 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate,
Accessors::FunctionSetPrototype(callsite_fun, proto).Assert(); Accessors::FunctionSetPrototype(callsite_fun, proto).Assert();
} }
} }
{ // -- E r r o r
Handle<JSFunction> make_err_fun = InstallFunction(
container, "make_generic_error", JS_OBJECT_TYPE, JSObject::kHeaderSize,
isolate->initial_object_prototype(), Builtins::kMakeGenericError);
make_err_fun->shared()->DontAdaptArguments();
}
} }
......
...@@ -81,23 +81,54 @@ BUILTIN(ErrorPrototypeToString) { ...@@ -81,23 +81,54 @@ BUILTIN(ErrorPrototypeToString) {
ErrorUtils::ToString(isolate, args.receiver())); ErrorUtils::ToString(isolate, args.receiver()));
} }
BUILTIN(MakeGenericError) { namespace {
HandleScope scope(isolate);
Handle<Object> constructor = args.atOrUndefined(isolate, 1); Object* MakeGenericError(Isolate* isolate, BuiltinArguments args,
Handle<Object> template_index = args.atOrUndefined(isolate, 2); Handle<JSFunction> constructor) {
Handle<Object> arg0 = args.atOrUndefined(isolate, 3); Handle<Object> template_index = args.atOrUndefined(isolate, 1);
Handle<Object> arg1 = args.atOrUndefined(isolate, 4); Handle<Object> arg0 = args.atOrUndefined(isolate, 2);
Handle<Object> arg2 = args.atOrUndefined(isolate, 5); Handle<Object> arg1 = args.atOrUndefined(isolate, 3);
Handle<Object> arg2 = args.atOrUndefined(isolate, 4);
DCHECK(constructor->IsJSFunction());
DCHECK(template_index->IsSmi()); DCHECK(template_index->IsSmi());
RETURN_RESULT_OR_FAILURE(
isolate, ErrorUtils::MakeGenericError(isolate, constructor,
Smi::cast(*template_index)->value(),
arg0, arg1, arg2, SKIP_NONE));
}
} // namespace
BUILTIN(MakeError) {
HandleScope scope(isolate);
return MakeGenericError(isolate, args, isolate->error_function());
}
BUILTIN(MakeRangeError) {
HandleScope scope(isolate);
return MakeGenericError(isolate, args, isolate->range_error_function());
}
BUILTIN(MakeSyntaxError) {
HandleScope scope(isolate);
return MakeGenericError(isolate, args, isolate->syntax_error_function());
}
BUILTIN(MakeTypeError) {
HandleScope scope(isolate);
return MakeGenericError(isolate, args, isolate->type_error_function());
}
BUILTIN(MakeURIError) {
HandleScope scope(isolate);
Handle<JSFunction> constructor = isolate->uri_error_function();
Handle<Object> undefined = isolate->factory()->undefined_value();
const int template_index = MessageTemplate::kURIMalformed;
RETURN_RESULT_OR_FAILURE( RETURN_RESULT_OR_FAILURE(
isolate, isolate,
ErrorUtils::MakeGenericError( ErrorUtils::MakeGenericError(isolate, constructor, template_index,
isolate, Handle<JSFunction>::cast(constructor), undefined, undefined, undefined, SKIP_NONE));
Smi::cast(*template_index)->value(), arg0, arg1, arg2, SKIP_FIRST));
} }
} // namespace internal } // namespace internal
......
...@@ -319,7 +319,11 @@ namespace internal { ...@@ -319,7 +319,11 @@ namespace internal {
CPP(ErrorConstructor) \ CPP(ErrorConstructor) \
CPP(ErrorCaptureStackTrace) \ CPP(ErrorCaptureStackTrace) \
CPP(ErrorPrototypeToString) \ CPP(ErrorPrototypeToString) \
CPP(MakeGenericError) \ CPP(MakeError) \
CPP(MakeRangeError) \
CPP(MakeSyntaxError) \
CPP(MakeTypeError) \
CPP(MakeURIError) \
\ \
/* Function */ \ /* Function */ \
CPP(FunctionConstructor) \ CPP(FunctionConstructor) \
......
...@@ -37,8 +37,11 @@ enum ContextLookupFlags { ...@@ -37,8 +37,11 @@ enum ContextLookupFlags {
#define NATIVE_CONTEXT_INTRINSIC_FUNCTIONS(V) \ #define NATIVE_CONTEXT_INTRINSIC_FUNCTIONS(V) \
V(IS_ARRAYLIKE, JSFunction, is_arraylike) \ V(IS_ARRAYLIKE, JSFunction, is_arraylike) \
V(GET_TEMPLATE_CALL_SITE_INDEX, JSFunction, get_template_call_site) \ V(GET_TEMPLATE_CALL_SITE_INDEX, JSFunction, get_template_call_site) \
V(MAKE_ERROR_INDEX, JSFunction, make_error) \
V(MAKE_RANGE_ERROR_INDEX, JSFunction, make_range_error) \ V(MAKE_RANGE_ERROR_INDEX, JSFunction, make_range_error) \
V(MAKE_SYNTAX_ERROR_INDEX, JSFunction, make_syntax_error) \
V(MAKE_TYPE_ERROR_INDEX, JSFunction, make_type_error) \ V(MAKE_TYPE_ERROR_INDEX, JSFunction, make_type_error) \
V(MAKE_URI_ERROR_INDEX, JSFunction, make_uri_error) \
V(OBJECT_DEFINE_PROPERTIES, JSFunction, object_define_properties) \ V(OBJECT_DEFINE_PROPERTIES, JSFunction, object_define_properties) \
V(OBJECT_DEFINE_PROPERTY, JSFunction, object_define_property) \ V(OBJECT_DEFINE_PROPERTY, JSFunction, object_define_property) \
V(OBJECT_FREEZE, JSFunction, object_freeze) \ V(OBJECT_FREEZE, JSFunction, object_freeze) \
......
This diff is collapsed.
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
var GlobalArray = global.Array; var GlobalArray = global.Array;
var IsNaN = global.isNaN; var IsNaN = global.isNaN;
var JSONStringify = global.JSON.stringify; var JSONStringify = global.JSON.stringify;
var MakeError;
var MapEntries; var MapEntries;
var MapIteratorNext; var MapIteratorNext;
var promiseStateSymbol = utils.ImportNow("promise_state_symbol"); var promiseStateSymbol = utils.ImportNow("promise_state_symbol");
...@@ -20,7 +19,6 @@ var SetIteratorNext; ...@@ -20,7 +19,6 @@ var SetIteratorNext;
var SetValues; var SetValues;
utils.Import(function(from) { utils.Import(function(from) {
MakeError = from.MakeError;
MapEntries = from.MapEntries; MapEntries = from.MapEntries;
MapIteratorNext = from.MapIteratorNext; MapIteratorNext = from.MapIteratorNext;
SetIteratorNext = from.SetIteratorNext; SetIteratorNext = from.SetIteratorNext;
...@@ -192,7 +190,7 @@ function MakeMirror(value, opt_transient) { ...@@ -192,7 +190,7 @@ function MakeMirror(value, opt_transient) {
*/ */
function LookupMirror(handle) { function LookupMirror(handle) {
if (!mirror_cache_enabled_) { if (!mirror_cache_enabled_) {
throw MakeError(kDebugger, "Mirror cache is disabled"); throw %make_error(kDebugger, "Mirror cache is disabled");
} }
return mirror_cache_[handle]; return mirror_cache_[handle];
} }
...@@ -2241,7 +2239,7 @@ ScopeDetails.prototype.setVariableValueImpl = function(name, new_value) { ...@@ -2241,7 +2239,7 @@ ScopeDetails.prototype.setVariableValueImpl = function(name, new_value) {
raw_res = %SetScopeVariableValue(this.fun_value_, null, null, this.index_, raw_res = %SetScopeVariableValue(this.fun_value_, null, null, this.index_,
name, new_value); name, new_value);
} }
if (!raw_res) throw MakeError(kDebugger, "Failed to set variable value"); if (!raw_res) throw %make_error(kDebugger, "Failed to set variable value");
}; };
...@@ -2340,7 +2338,7 @@ ScriptMirror.prototype.source = function() { ...@@ -2340,7 +2338,7 @@ ScriptMirror.prototype.source = function() {
ScriptMirror.prototype.setSource = function(source) { ScriptMirror.prototype.setSource = function(source) {
if (!IS_STRING(source)) throw MakeError(kDebugger, "Source is not a string"); if (!IS_STRING(source)) throw %make_error(kDebugger, "Source is not a string");
%DebugSetScriptSource(this.script_, source); %DebugSetScriptSource(this.script_, source);
}; };
...@@ -2660,7 +2658,7 @@ JSONProtocolSerializer.prototype.serialize_ = function(mirror, reference, ...@@ -2660,7 +2658,7 @@ JSONProtocolSerializer.prototype.serialize_ = function(mirror, reference,
case MirrorType.PROPERTY_TYPE: case MirrorType.PROPERTY_TYPE:
case MirrorType.INTERNAL_PROPERTY_TYPE: case MirrorType.INTERNAL_PROPERTY_TYPE:
throw MakeError(kDebugger, throw %make_error(kDebugger,
'PropertyMirror cannot be serialized independently'); 'PropertyMirror cannot be serialized independently');
break; break;
......
...@@ -20,14 +20,9 @@ var arrayIteratorObjectSymbol = ...@@ -20,14 +20,9 @@ var arrayIteratorObjectSymbol =
var GlobalArray = global.Array; var GlobalArray = global.Array;
var IteratorPrototype = utils.ImportNow("IteratorPrototype"); var IteratorPrototype = utils.ImportNow("IteratorPrototype");
var iteratorSymbol = utils.ImportNow("iterator_symbol"); var iteratorSymbol = utils.ImportNow("iterator_symbol");
var MakeTypeError;
var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
var GlobalTypedArray = %object_get_prototype_of(global.Uint8Array); var GlobalTypedArray = %object_get_prototype_of(global.Uint8Array);
utils.Import(function(from) {
MakeTypeError = from.MakeTypeError;
})
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
function ArrayIterator() {} function ArrayIterator() {}
...@@ -63,7 +58,7 @@ function ArrayIteratorNext() { ...@@ -63,7 +58,7 @@ function ArrayIteratorNext() {
if (!IS_RECEIVER(iterator) || if (!IS_RECEIVER(iterator) ||
!HAS_DEFINED_PRIVATE(iterator, arrayIteratorNextIndexSymbol)) { !HAS_DEFINED_PRIVATE(iterator, arrayIteratorNextIndexSymbol)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Array Iterator.prototype.next', this); 'Array Iterator.prototype.next', this);
} }
...@@ -111,19 +106,19 @@ function ArrayKeys() { ...@@ -111,19 +106,19 @@ function ArrayKeys() {
// TODO(littledan): Check for detached TypedArray in these three methods // TODO(littledan): Check for detached TypedArray in these three methods
function TypedArrayEntries() { function TypedArrayEntries() {
if (!IS_TYPEDARRAY(this)) throw MakeTypeError(kNotTypedArray); if (!IS_TYPEDARRAY(this)) throw %make_type_error(kNotTypedArray);
return %_Call(ArrayEntries, this); return %_Call(ArrayEntries, this);
} }
function TypedArrayValues() { function TypedArrayValues() {
if (!IS_TYPEDARRAY(this)) throw MakeTypeError(kNotTypedArray); if (!IS_TYPEDARRAY(this)) throw %make_type_error(kNotTypedArray);
return %_Call(ArrayValues, this); return %_Call(ArrayValues, this);
} }
function TypedArrayKeys() { function TypedArrayKeys() {
if (!IS_TYPEDARRAY(this)) throw MakeTypeError(kNotTypedArray); if (!IS_TYPEDARRAY(this)) throw %make_type_error(kNotTypedArray);
return %_Call(ArrayKeys, this); return %_Call(ArrayKeys, this);
} }
......
...@@ -16,7 +16,6 @@ var GetMethod; ...@@ -16,7 +16,6 @@ var GetMethod;
var GlobalArray = global.Array; var GlobalArray = global.Array;
var InternalArray = utils.InternalArray; var InternalArray = utils.InternalArray;
var InternalPackedArray = utils.InternalPackedArray; var InternalPackedArray = utils.InternalPackedArray;
var MakeTypeError;
var MaxSimple; var MaxSimple;
var MinSimple; var MinSimple;
var ObjectHasOwnProperty; var ObjectHasOwnProperty;
...@@ -28,7 +27,6 @@ var unscopablesSymbol = utils.ImportNow("unscopables_symbol"); ...@@ -28,7 +27,6 @@ var unscopablesSymbol = utils.ImportNow("unscopables_symbol");
utils.Import(function(from) { utils.Import(function(from) {
GetIterator = from.GetIterator; GetIterator = from.GetIterator;
GetMethod = from.GetMethod; GetMethod = from.GetMethod;
MakeTypeError = from.MakeTypeError;
MaxSimple = from.MaxSimple; MaxSimple = from.MaxSimple;
MinSimple = from.MinSimple; MinSimple = from.MinSimple;
ObjectHasOwnProperty = from.ObjectHasOwnProperty; ObjectHasOwnProperty = from.ObjectHasOwnProperty;
...@@ -424,7 +422,7 @@ function ArrayPush() { ...@@ -424,7 +422,7 @@ function ArrayPush() {
// Subtract n from kMaxSafeInteger rather than testing m + n > // Subtract n from kMaxSafeInteger rather than testing m + n >
// kMaxSafeInteger. n may already be kMaxSafeInteger. In that case adding // kMaxSafeInteger. n may already be kMaxSafeInteger. In that case adding
// e.g., 1 would not be safe. // e.g., 1 would not be safe.
if (m > kMaxSafeInteger - n) throw MakeTypeError(kPushPastSafeLength, m, n); if (m > kMaxSafeInteger - n) throw %make_type_error(kPushPastSafeLength, m, n);
for (var i = 0; i < m; i++) { for (var i = 0; i < m; i++) {
array[i+n] = arguments[i]; array[i+n] = arguments[i];
...@@ -546,7 +544,7 @@ function ArrayShift() { ...@@ -546,7 +544,7 @@ function ArrayShift() {
return; return;
} }
if (%object_is_sealed(array)) throw MakeTypeError(kArrayFunctionsOnSealed); if (%object_is_sealed(array)) throw %make_type_error(kArrayFunctionsOnSealed);
var first = array[0]; var first = array[0];
...@@ -673,9 +671,9 @@ function ArraySplice(start, delete_count) { ...@@ -673,9 +671,9 @@ function ArraySplice(start, delete_count) {
var num_elements_to_add = num_arguments > 2 ? num_arguments - 2 : 0; var num_elements_to_add = num_arguments > 2 ? num_arguments - 2 : 0;
if (del_count != num_elements_to_add && %object_is_sealed(array)) { if (del_count != num_elements_to_add && %object_is_sealed(array)) {
throw MakeTypeError(kArrayFunctionsOnSealed); throw %make_type_error(kArrayFunctionsOnSealed);
} else if (del_count > 0 && %object_is_frozen(array)) { } else if (del_count > 0 && %object_is_frozen(array)) {
throw MakeTypeError(kArrayFunctionsOnFrozen); throw %make_type_error(kArrayFunctionsOnFrozen);
} }
var changed_elements = del_count; var changed_elements = del_count;
...@@ -1031,14 +1029,14 @@ function ArrayFilter(f, receiver) { ...@@ -1031,14 +1029,14 @@ function ArrayFilter(f, receiver) {
// loop will not affect the looping and side effects are visible. // loop will not affect the looping and side effects are visible.
var array = TO_OBJECT(this); var array = TO_OBJECT(this);
var length = TO_LENGTH(array.length); var length = TO_LENGTH(array.length);
if (!IS_CALLABLE(f)) throw MakeTypeError(kCalledNonCallable, f); if (!IS_CALLABLE(f)) throw %make_type_error(kCalledNonCallable, f);
var result = ArraySpeciesCreate(array, 0); var result = ArraySpeciesCreate(array, 0);
return InnerArrayFilter(f, receiver, array, length, result); return InnerArrayFilter(f, receiver, array, length, result);
} }
function InnerArrayForEach(f, receiver, array, length) { function InnerArrayForEach(f, receiver, array, length) {
if (!IS_CALLABLE(f)) throw MakeTypeError(kCalledNonCallable, f); if (!IS_CALLABLE(f)) throw %make_type_error(kCalledNonCallable, f);
if (IS_UNDEFINED(receiver)) { if (IS_UNDEFINED(receiver)) {
for (var i = 0; i < length; i++) { for (var i = 0; i < length; i++) {
...@@ -1070,7 +1068,7 @@ function ArrayForEach(f, receiver) { ...@@ -1070,7 +1068,7 @@ function ArrayForEach(f, receiver) {
function InnerArraySome(f, receiver, array, length) { function InnerArraySome(f, receiver, array, length) {
if (!IS_CALLABLE(f)) throw MakeTypeError(kCalledNonCallable, f); if (!IS_CALLABLE(f)) throw %make_type_error(kCalledNonCallable, f);
for (var i = 0; i < length; i++) { for (var i = 0; i < length; i++) {
if (i in array) { if (i in array) {
...@@ -1096,7 +1094,7 @@ function ArraySome(f, receiver) { ...@@ -1096,7 +1094,7 @@ function ArraySome(f, receiver) {
function InnerArrayEvery(f, receiver, array, length) { function InnerArrayEvery(f, receiver, array, length) {
if (!IS_CALLABLE(f)) throw MakeTypeError(kCalledNonCallable, f); if (!IS_CALLABLE(f)) throw %make_type_error(kCalledNonCallable, f);
for (var i = 0; i < length; i++) { for (var i = 0; i < length; i++) {
if (i in array) { if (i in array) {
...@@ -1125,7 +1123,7 @@ function ArrayMap(f, receiver) { ...@@ -1125,7 +1123,7 @@ function ArrayMap(f, receiver) {
// loop will not affect the looping and side effects are visible. // loop will not affect the looping and side effects are visible.
var array = TO_OBJECT(this); var array = TO_OBJECT(this);
var length = TO_LENGTH(array.length); var length = TO_LENGTH(array.length);
if (!IS_CALLABLE(f)) throw MakeTypeError(kCalledNonCallable, f); if (!IS_CALLABLE(f)) throw %make_type_error(kCalledNonCallable, f);
var result = ArraySpeciesCreate(array, length); var result = ArraySpeciesCreate(array, length);
for (var i = 0; i < length; i++) { for (var i = 0; i < length; i++) {
if (i in array) { if (i in array) {
...@@ -1264,7 +1262,7 @@ function ArrayLastIndexOf(element, index) { ...@@ -1264,7 +1262,7 @@ function ArrayLastIndexOf(element, index) {
function InnerArrayReduce(callback, current, array, length, argumentsLength) { function InnerArrayReduce(callback, current, array, length, argumentsLength) {
if (!IS_CALLABLE(callback)) { if (!IS_CALLABLE(callback)) {
throw MakeTypeError(kCalledNonCallable, callback); throw %make_type_error(kCalledNonCallable, callback);
} }
var i = 0; var i = 0;
...@@ -1275,7 +1273,7 @@ function InnerArrayReduce(callback, current, array, length, argumentsLength) { ...@@ -1275,7 +1273,7 @@ function InnerArrayReduce(callback, current, array, length, argumentsLength) {
break find_initial; break find_initial;
} }
} }
throw MakeTypeError(kReduceNoInitial); throw %make_type_error(kReduceNoInitial);
} }
for (; i < length; i++) { for (; i < length; i++) {
...@@ -1303,7 +1301,7 @@ function ArrayReduce(callback, current) { ...@@ -1303,7 +1301,7 @@ function ArrayReduce(callback, current) {
function InnerArrayReduceRight(callback, current, array, length, function InnerArrayReduceRight(callback, current, array, length,
argumentsLength) { argumentsLength) {
if (!IS_CALLABLE(callback)) { if (!IS_CALLABLE(callback)) {
throw MakeTypeError(kCalledNonCallable, callback); throw %make_type_error(kCalledNonCallable, callback);
} }
var i = length - 1; var i = length - 1;
...@@ -1314,7 +1312,7 @@ function InnerArrayReduceRight(callback, current, array, length, ...@@ -1314,7 +1312,7 @@ function InnerArrayReduceRight(callback, current, array, length,
break find_initial; break find_initial;
} }
} }
throw MakeTypeError(kReduceNoInitial); throw %make_type_error(kReduceNoInitial);
} }
for (; i >= 0; i--) { for (; i >= 0; i--) {
...@@ -1400,7 +1398,7 @@ function ArrayCopyWithin(target, start, end) { ...@@ -1400,7 +1398,7 @@ function ArrayCopyWithin(target, start, end) {
function InnerArrayFind(predicate, thisArg, array, length) { function InnerArrayFind(predicate, thisArg, array, length) {
if (!IS_CALLABLE(predicate)) { if (!IS_CALLABLE(predicate)) {
throw MakeTypeError(kCalledNonCallable, predicate); throw %make_type_error(kCalledNonCallable, predicate);
} }
for (var i = 0; i < length; i++) { for (var i = 0; i < length; i++) {
...@@ -1427,7 +1425,7 @@ function ArrayFind(predicate, thisArg) { ...@@ -1427,7 +1425,7 @@ function ArrayFind(predicate, thisArg) {
function InnerArrayFindIndex(predicate, thisArg, array, length) { function InnerArrayFindIndex(predicate, thisArg, array, length) {
if (!IS_CALLABLE(predicate)) { if (!IS_CALLABLE(predicate)) {
throw MakeTypeError(kCalledNonCallable, predicate); throw %make_type_error(kCalledNonCallable, predicate);
} }
for (var i = 0; i < length; i++) { for (var i = 0; i < length; i++) {
...@@ -1472,7 +1470,7 @@ function InnerArrayFill(value, start, end, array, length) { ...@@ -1472,7 +1470,7 @@ function InnerArrayFill(value, start, end, array, length) {
} }
if ((end - i) > 0 && %object_is_frozen(array)) { if ((end - i) > 0 && %object_is_frozen(array)) {
throw MakeTypeError(kArrayFunctionsOnFrozen); throw %make_type_error(kArrayFunctionsOnFrozen);
} }
for (; i < end; i++) for (; i < end; i++)
...@@ -1499,7 +1497,7 @@ function ArrayFrom(arrayLike, mapfn, receiver) { ...@@ -1499,7 +1497,7 @@ function ArrayFrom(arrayLike, mapfn, receiver) {
if (mapping) { if (mapping) {
if (!IS_CALLABLE(mapfn)) { if (!IS_CALLABLE(mapfn)) {
throw MakeTypeError(kCalledNonCallable, mapfn); throw %make_type_error(kCalledNonCallable, mapfn);
} }
} }
......
...@@ -12,14 +12,12 @@ ...@@ -12,14 +12,12 @@
// Imports // Imports
var GlobalArrayBuffer = global.ArrayBuffer; var GlobalArrayBuffer = global.ArrayBuffer;
var MakeTypeError;
var MaxSimple; var MaxSimple;
var MinSimple; var MinSimple;
var SpeciesConstructor; var SpeciesConstructor;
var speciesSymbol = utils.ImportNow("species_symbol"); var speciesSymbol = utils.ImportNow("species_symbol");
utils.Import(function(from) { utils.Import(function(from) {
MakeTypeError = from.MakeTypeError;
MaxSimple = from.MaxSimple; MaxSimple = from.MaxSimple;
MinSimple = from.MinSimple; MinSimple = from.MinSimple;
SpeciesConstructor = from.SpeciesConstructor; SpeciesConstructor = from.SpeciesConstructor;
...@@ -30,7 +28,7 @@ utils.Import(function(from) { ...@@ -30,7 +28,7 @@ utils.Import(function(from) {
// ES6 Draft 15.13.5.5.3 // ES6 Draft 15.13.5.5.3
function ArrayBufferSlice(start, end) { function ArrayBufferSlice(start, end) {
if (!IS_ARRAYBUFFER(this)) { if (!IS_ARRAYBUFFER(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'ArrayBuffer.prototype.slice', this); 'ArrayBuffer.prototype.slice', this);
} }
...@@ -60,17 +58,17 @@ function ArrayBufferSlice(start, end) { ...@@ -60,17 +58,17 @@ function ArrayBufferSlice(start, end) {
var constructor = SpeciesConstructor(this, GlobalArrayBuffer, true); var constructor = SpeciesConstructor(this, GlobalArrayBuffer, true);
var result = new constructor(newLen); var result = new constructor(newLen);
if (!IS_ARRAYBUFFER(result)) { if (!IS_ARRAYBUFFER(result)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'ArrayBuffer.prototype.slice', result); 'ArrayBuffer.prototype.slice', result);
} }
// Checks for detached source/target ArrayBuffers are done inside of // Checks for detached source/target ArrayBuffers are done inside of
// %ArrayBufferSliceImpl; the reordering of checks does not violate // %ArrayBufferSliceImpl; the reordering of checks does not violate
// the spec because all exceptions thrown are TypeErrors. // the spec because all exceptions thrown are TypeErrors.
if (result === this) { if (result === this) {
throw MakeTypeError(kArrayBufferSpeciesThis); throw %make_type_error(kArrayBufferSpeciesThis);
} }
if (%_ArrayBufferGetByteLength(result) < newLen) { if (%_ArrayBufferGetByteLength(result) < newLen) {
throw MakeTypeError(kArrayBufferTooShort); throw %make_type_error(kArrayBufferTooShort);
} }
%ArrayBufferSliceImpl(this, result, first, newLen); %ArrayBufferSliceImpl(this, result, first, newLen);
......
...@@ -14,15 +14,10 @@ ...@@ -14,15 +14,10 @@
var GlobalMap = global.Map; var GlobalMap = global.Map;
var GlobalSet = global.Set; var GlobalSet = global.Set;
var iteratorSymbol = utils.ImportNow("iterator_symbol"); var iteratorSymbol = utils.ImportNow("iterator_symbol");
var MakeTypeError;
var MapIterator = utils.ImportNow("MapIterator"); var MapIterator = utils.ImportNow("MapIterator");
var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
var SetIterator = utils.ImportNow("SetIterator"); var SetIterator = utils.ImportNow("SetIterator");
utils.Import(function(from) {
MakeTypeError = from.MakeTypeError;
});
// ------------------------------------------------------------------- // -------------------------------------------------------------------
function SetIteratorConstructor(set, kind) { function SetIteratorConstructor(set, kind) {
...@@ -32,7 +27,7 @@ function SetIteratorConstructor(set, kind) { ...@@ -32,7 +27,7 @@ function SetIteratorConstructor(set, kind) {
function SetIteratorNextJS() { function SetIteratorNextJS() {
if (!IS_SET_ITERATOR(this)) { if (!IS_SET_ITERATOR(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Set Iterator.prototype.next', this); 'Set Iterator.prototype.next', this);
} }
...@@ -57,7 +52,7 @@ function SetIteratorNextJS() { ...@@ -57,7 +52,7 @@ function SetIteratorNextJS() {
function SetEntries() { function SetEntries() {
if (!IS_SET(this)) { if (!IS_SET(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Set.prototype.entries', this); 'Set.prototype.entries', this);
} }
return new SetIterator(this, ITERATOR_KIND_ENTRIES); return new SetIterator(this, ITERATOR_KIND_ENTRIES);
...@@ -66,7 +61,7 @@ function SetEntries() { ...@@ -66,7 +61,7 @@ function SetEntries() {
function SetValues() { function SetValues() {
if (!IS_SET(this)) { if (!IS_SET(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Set.prototype.values', this); 'Set.prototype.values', this);
} }
return new SetIterator(this, ITERATOR_KIND_VALUES); return new SetIterator(this, ITERATOR_KIND_VALUES);
...@@ -100,7 +95,7 @@ function MapIteratorConstructor(map, kind) { ...@@ -100,7 +95,7 @@ function MapIteratorConstructor(map, kind) {
function MapIteratorNextJS() { function MapIteratorNextJS() {
if (!IS_MAP_ITERATOR(this)) { if (!IS_MAP_ITERATOR(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Map Iterator.prototype.next', this); 'Map Iterator.prototype.next', this);
} }
...@@ -126,7 +121,7 @@ function MapIteratorNextJS() { ...@@ -126,7 +121,7 @@ function MapIteratorNextJS() {
function MapEntries() { function MapEntries() {
if (!IS_MAP(this)) { if (!IS_MAP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Map.prototype.entries', this); 'Map.prototype.entries', this);
} }
return new MapIterator(this, ITERATOR_KIND_ENTRIES); return new MapIterator(this, ITERATOR_KIND_ENTRIES);
...@@ -135,7 +130,7 @@ function MapEntries() { ...@@ -135,7 +130,7 @@ function MapEntries() {
function MapKeys() { function MapKeys() {
if (!IS_MAP(this)) { if (!IS_MAP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Map.prototype.keys', this); 'Map.prototype.keys', this);
} }
return new MapIterator(this, ITERATOR_KIND_KEYS); return new MapIterator(this, ITERATOR_KIND_KEYS);
...@@ -144,7 +139,7 @@ function MapKeys() { ...@@ -144,7 +139,7 @@ function MapKeys() {
function MapValues() { function MapValues() {
if (!IS_MAP(this)) { if (!IS_MAP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Map.prototype.values', this); 'Map.prototype.values', this);
} }
return new MapIterator(this, ITERATOR_KIND_VALUES); return new MapIterator(this, ITERATOR_KIND_VALUES);
......
...@@ -15,7 +15,6 @@ var GlobalObject = global.Object; ...@@ -15,7 +15,6 @@ var GlobalObject = global.Object;
var GlobalSet = global.Set; var GlobalSet = global.Set;
var hashCodeSymbol = utils.ImportNow("hash_code_symbol"); var hashCodeSymbol = utils.ImportNow("hash_code_symbol");
var MathRandom; var MathRandom;
var MakeTypeError;
var MapIterator; var MapIterator;
var NumberIsNaN; var NumberIsNaN;
var SetIterator; var SetIterator;
...@@ -24,7 +23,6 @@ var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); ...@@ -24,7 +23,6 @@ var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
utils.Import(function(from) { utils.Import(function(from) {
MathRandom = from.MathRandom; MathRandom = from.MathRandom;
MakeTypeError = from.MakeTypeError;
MapIterator = from.MapIterator; MapIterator = from.MapIterator;
NumberIsNaN = from.NumberIsNaN; NumberIsNaN = from.NumberIsNaN;
SetIterator = from.SetIterator; SetIterator = from.SetIterator;
...@@ -127,7 +125,7 @@ function GetHash(key) { ...@@ -127,7 +125,7 @@ function GetHash(key) {
function SetConstructor(iterable) { function SetConstructor(iterable) {
if (IS_UNDEFINED(new.target)) { if (IS_UNDEFINED(new.target)) {
throw MakeTypeError(kConstructorNotFunction, "Set"); throw %make_type_error(kConstructorNotFunction, "Set");
} }
%_SetInitialize(this); %_SetInitialize(this);
...@@ -135,7 +133,7 @@ function SetConstructor(iterable) { ...@@ -135,7 +133,7 @@ function SetConstructor(iterable) {
if (!IS_NULL_OR_UNDEFINED(iterable)) { if (!IS_NULL_OR_UNDEFINED(iterable)) {
var adder = this.add; var adder = this.add;
if (!IS_CALLABLE(adder)) { if (!IS_CALLABLE(adder)) {
throw MakeTypeError(kPropertyNotFunction, adder, 'add', this); throw %make_type_error(kPropertyNotFunction, adder, 'add', this);
} }
for (var value of iterable) { for (var value of iterable) {
...@@ -147,7 +145,7 @@ function SetConstructor(iterable) { ...@@ -147,7 +145,7 @@ function SetConstructor(iterable) {
function SetAdd(key) { function SetAdd(key) {
if (!IS_SET(this)) { if (!IS_SET(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, 'Set.prototype.add', this); throw %make_type_error(kIncompatibleMethodReceiver, 'Set.prototype.add', this);
} }
// Normalize -0 to +0 as required by the spec. // Normalize -0 to +0 as required by the spec.
// Even though we use SameValueZero as the comparison for the keys we don't // Even though we use SameValueZero as the comparison for the keys we don't
...@@ -187,7 +185,7 @@ function SetAdd(key) { ...@@ -187,7 +185,7 @@ function SetAdd(key) {
function SetHas(key) { function SetHas(key) {
if (!IS_SET(this)) { if (!IS_SET(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, 'Set.prototype.has', this); throw %make_type_error(kIncompatibleMethodReceiver, 'Set.prototype.has', this);
} }
var table = %_JSCollectionGetTable(this); var table = %_JSCollectionGetTable(this);
var numBuckets = ORDERED_HASH_TABLE_BUCKET_COUNT(table); var numBuckets = ORDERED_HASH_TABLE_BUCKET_COUNT(table);
...@@ -199,7 +197,7 @@ function SetHas(key) { ...@@ -199,7 +197,7 @@ function SetHas(key) {
function SetDelete(key) { function SetDelete(key) {
if (!IS_SET(this)) { if (!IS_SET(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Set.prototype.delete', this); 'Set.prototype.delete', this);
} }
var table = %_JSCollectionGetTable(this); var table = %_JSCollectionGetTable(this);
...@@ -222,7 +220,7 @@ function SetDelete(key) { ...@@ -222,7 +220,7 @@ function SetDelete(key) {
function SetGetSize() { function SetGetSize() {
if (!IS_SET(this)) { if (!IS_SET(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Set.prototype.size', this); 'Set.prototype.size', this);
} }
var table = %_JSCollectionGetTable(this); var table = %_JSCollectionGetTable(this);
...@@ -232,7 +230,7 @@ function SetGetSize() { ...@@ -232,7 +230,7 @@ function SetGetSize() {
function SetClearJS() { function SetClearJS() {
if (!IS_SET(this)) { if (!IS_SET(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Set.prototype.clear', this); 'Set.prototype.clear', this);
} }
%_SetClear(this); %_SetClear(this);
...@@ -241,11 +239,11 @@ function SetClearJS() { ...@@ -241,11 +239,11 @@ function SetClearJS() {
function SetForEach(f, receiver) { function SetForEach(f, receiver) {
if (!IS_SET(this)) { if (!IS_SET(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Set.prototype.forEach', this); 'Set.prototype.forEach', this);
} }
if (!IS_CALLABLE(f)) throw MakeTypeError(kCalledNonCallable, f); if (!IS_CALLABLE(f)) throw %make_type_error(kCalledNonCallable, f);
var iterator = new SetIterator(this, ITERATOR_KIND_VALUES); var iterator = new SetIterator(this, ITERATOR_KIND_VALUES);
var key; var key;
...@@ -291,7 +289,7 @@ utils.InstallFunctions(GlobalSet.prototype, DONT_ENUM, [ ...@@ -291,7 +289,7 @@ utils.InstallFunctions(GlobalSet.prototype, DONT_ENUM, [
function MapConstructor(iterable) { function MapConstructor(iterable) {
if (IS_UNDEFINED(new.target)) { if (IS_UNDEFINED(new.target)) {
throw MakeTypeError(kConstructorNotFunction, "Map"); throw %make_type_error(kConstructorNotFunction, "Map");
} }
%_MapInitialize(this); %_MapInitialize(this);
...@@ -299,12 +297,12 @@ function MapConstructor(iterable) { ...@@ -299,12 +297,12 @@ function MapConstructor(iterable) {
if (!IS_NULL_OR_UNDEFINED(iterable)) { if (!IS_NULL_OR_UNDEFINED(iterable)) {
var adder = this.set; var adder = this.set;
if (!IS_CALLABLE(adder)) { if (!IS_CALLABLE(adder)) {
throw MakeTypeError(kPropertyNotFunction, adder, 'set', this); throw %make_type_error(kPropertyNotFunction, adder, 'set', this);
} }
for (var nextItem of iterable) { for (var nextItem of iterable) {
if (!IS_RECEIVER(nextItem)) { if (!IS_RECEIVER(nextItem)) {
throw MakeTypeError(kIteratorValueNotAnObject, nextItem); throw %make_type_error(kIteratorValueNotAnObject, nextItem);
} }
%_Call(adder, this, nextItem[0], nextItem[1]); %_Call(adder, this, nextItem[0], nextItem[1]);
} }
...@@ -314,7 +312,7 @@ function MapConstructor(iterable) { ...@@ -314,7 +312,7 @@ function MapConstructor(iterable) {
function MapGet(key) { function MapGet(key) {
if (!IS_MAP(this)) { if (!IS_MAP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Map.prototype.get', this); 'Map.prototype.get', this);
} }
var table = %_JSCollectionGetTable(this); var table = %_JSCollectionGetTable(this);
...@@ -329,7 +327,7 @@ function MapGet(key) { ...@@ -329,7 +327,7 @@ function MapGet(key) {
function MapSet(key, value) { function MapSet(key, value) {
if (!IS_MAP(this)) { if (!IS_MAP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Map.prototype.set', this); 'Map.prototype.set', this);
} }
// Normalize -0 to +0 as required by the spec. // Normalize -0 to +0 as required by the spec.
...@@ -377,7 +375,7 @@ function MapSet(key, value) { ...@@ -377,7 +375,7 @@ function MapSet(key, value) {
function MapHas(key) { function MapHas(key) {
if (!IS_MAP(this)) { if (!IS_MAP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Map.prototype.has', this); 'Map.prototype.has', this);
} }
var table = %_JSCollectionGetTable(this); var table = %_JSCollectionGetTable(this);
...@@ -389,7 +387,7 @@ function MapHas(key) { ...@@ -389,7 +387,7 @@ function MapHas(key) {
function MapDelete(key) { function MapDelete(key) {
if (!IS_MAP(this)) { if (!IS_MAP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Map.prototype.delete', this); 'Map.prototype.delete', this);
} }
var table = %_JSCollectionGetTable(this); var table = %_JSCollectionGetTable(this);
...@@ -412,7 +410,7 @@ function MapDelete(key) { ...@@ -412,7 +410,7 @@ function MapDelete(key) {
function MapGetSize() { function MapGetSize() {
if (!IS_MAP(this)) { if (!IS_MAP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Map.prototype.size', this); 'Map.prototype.size', this);
} }
var table = %_JSCollectionGetTable(this); var table = %_JSCollectionGetTable(this);
...@@ -422,7 +420,7 @@ function MapGetSize() { ...@@ -422,7 +420,7 @@ function MapGetSize() {
function MapClearJS() { function MapClearJS() {
if (!IS_MAP(this)) { if (!IS_MAP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Map.prototype.clear', this); 'Map.prototype.clear', this);
} }
%_MapClear(this); %_MapClear(this);
...@@ -431,11 +429,11 @@ function MapClearJS() { ...@@ -431,11 +429,11 @@ function MapClearJS() {
function MapForEach(f, receiver) { function MapForEach(f, receiver) {
if (!IS_MAP(this)) { if (!IS_MAP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'Map.prototype.forEach', this); 'Map.prototype.forEach', this);
} }
if (!IS_CALLABLE(f)) throw MakeTypeError(kCalledNonCallable, f); if (!IS_CALLABLE(f)) throw %make_type_error(kCalledNonCallable, f);
var iterator = new MapIterator(this, ITERATOR_KIND_ENTRIES); var iterator = new MapIterator(this, ITERATOR_KIND_ENTRIES);
var value_array = [UNDEFINED, UNDEFINED]; var value_array = [UNDEFINED, UNDEFINED];
......
...@@ -12,14 +12,10 @@ ...@@ -12,14 +12,10 @@
// Imports // Imports
var GlobalObject = global.Object; var GlobalObject = global.Object;
var MakeRangeError;
var MakeTypeError;
var MaxSimple; var MaxSimple;
var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
utils.Import(function(from) { utils.Import(function(from) {
MakeTypeError = from.MakeTypeError;
MakeRangeError = from.MakeRangeError;
MaxSimple = from.MaxSimple; MaxSimple = from.MaxSimple;
}); });
...@@ -28,14 +24,14 @@ utils.Import(function(from) { ...@@ -28,14 +24,14 @@ utils.Import(function(from) {
function CheckSharedIntegerTypedArray(ia) { function CheckSharedIntegerTypedArray(ia) {
if (!%IsSharedIntegerTypedArray(ia)) { if (!%IsSharedIntegerTypedArray(ia)) {
throw MakeTypeError(kNotIntegerSharedTypedArray, ia); throw %make_type_error(kNotIntegerSharedTypedArray, ia);
} }
} }
function CheckSharedInteger32TypedArray(ia) { function CheckSharedInteger32TypedArray(ia) {
CheckSharedIntegerTypedArray(ia); CheckSharedIntegerTypedArray(ia);
if (!%IsSharedInteger32TypedArray(ia)) { if (!%IsSharedInteger32TypedArray(ia)) {
throw MakeTypeError(kNotInt32SharedTypedArray, ia); throw %make_type_error(kNotInt32SharedTypedArray, ia);
} }
} }
...@@ -44,10 +40,10 @@ function ValidateIndex(index, length) { ...@@ -44,10 +40,10 @@ function ValidateIndex(index, length) {
var numberIndex = TO_NUMBER(index); var numberIndex = TO_NUMBER(index);
var accessIndex = TO_INTEGER(numberIndex); var accessIndex = TO_INTEGER(numberIndex);
if (numberIndex !== accessIndex) { if (numberIndex !== accessIndex) {
throw MakeRangeError(kInvalidAtomicAccessIndex); throw %make_range_error(kInvalidAtomicAccessIndex);
} }
if (accessIndex < 0 || accessIndex >= length) { if (accessIndex < 0 || accessIndex >= length) {
throw MakeRangeError(kInvalidAtomicAccessIndex); throw %make_range_error(kInvalidAtomicAccessIndex);
} }
return accessIndex; return accessIndex;
} }
......
...@@ -12,13 +12,8 @@ ...@@ -12,13 +12,8 @@
// Imports // Imports
var GlobalSIMD = global.SIMD; var GlobalSIMD = global.SIMD;
var MakeTypeError;
var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
utils.Import(function(from) {
MakeTypeError = from.MakeTypeError;
});
// ------------------------------------------------------------------- // -------------------------------------------------------------------
macro SIMD_FLOAT_TYPES(FUNCTION) macro SIMD_FLOAT_TYPES(FUNCTION)
...@@ -64,7 +59,7 @@ function NAMECheckJS(a) { ...@@ -64,7 +59,7 @@ function NAMECheckJS(a) {
function NAMEToString() { function NAMEToString() {
var value = %ValueOf(this); var value = %ValueOf(this);
if (typeof(value) !== 'TYPE') { if (typeof(value) !== 'TYPE') {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
"NAME.prototype.toString", this); "NAME.prototype.toString", this);
} }
var str = "SIMD.NAME("; var str = "SIMD.NAME(";
...@@ -78,7 +73,7 @@ function NAMEToString() { ...@@ -78,7 +73,7 @@ function NAMEToString() {
function NAMEToLocaleString() { function NAMEToLocaleString() {
var value = %ValueOf(this); var value = %ValueOf(this);
if (typeof(value) !== 'TYPE') { if (typeof(value) !== 'TYPE') {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
"NAME.prototype.toLocaleString", this); "NAME.prototype.toLocaleString", this);
} }
var str = "SIMD.NAME("; var str = "SIMD.NAME(";
...@@ -92,7 +87,7 @@ function NAMEToLocaleString() { ...@@ -92,7 +87,7 @@ function NAMEToLocaleString() {
function NAMEValueOf() { function NAMEValueOf() {
var value = %ValueOf(this); var value = %ValueOf(this);
if (typeof(value) !== 'TYPE') { if (typeof(value) !== 'TYPE') {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
"NAME.prototype.valueOf", this); "NAME.prototype.valueOf", this);
} }
return value; return value;
...@@ -434,7 +429,7 @@ SIMD_X16_TYPES(DECLARE_X16_FUNCTIONS) ...@@ -434,7 +429,7 @@ SIMD_X16_TYPES(DECLARE_X16_FUNCTIONS)
function Float32x4Constructor(c0, c1, c2, c3) { function Float32x4Constructor(c0, c1, c2, c3) {
if (!IS_UNDEFINED(new.target)) { if (!IS_UNDEFINED(new.target)) {
throw MakeTypeError(kNotConstructor, "Float32x4"); throw %make_type_error(kNotConstructor, "Float32x4");
} }
return %CreateFloat32x4(TO_NUMBER(c0), TO_NUMBER(c1), return %CreateFloat32x4(TO_NUMBER(c0), TO_NUMBER(c1),
TO_NUMBER(c2), TO_NUMBER(c3)); TO_NUMBER(c2), TO_NUMBER(c3));
...@@ -443,7 +438,7 @@ function Float32x4Constructor(c0, c1, c2, c3) { ...@@ -443,7 +438,7 @@ function Float32x4Constructor(c0, c1, c2, c3) {
function Int32x4Constructor(c0, c1, c2, c3) { function Int32x4Constructor(c0, c1, c2, c3) {
if (!IS_UNDEFINED(new.target)) { if (!IS_UNDEFINED(new.target)) {
throw MakeTypeError(kNotConstructor, "Int32x4"); throw %make_type_error(kNotConstructor, "Int32x4");
} }
return %CreateInt32x4(TO_NUMBER(c0), TO_NUMBER(c1), return %CreateInt32x4(TO_NUMBER(c0), TO_NUMBER(c1),
TO_NUMBER(c2), TO_NUMBER(c3)); TO_NUMBER(c2), TO_NUMBER(c3));
...@@ -452,7 +447,7 @@ function Int32x4Constructor(c0, c1, c2, c3) { ...@@ -452,7 +447,7 @@ function Int32x4Constructor(c0, c1, c2, c3) {
function Uint32x4Constructor(c0, c1, c2, c3) { function Uint32x4Constructor(c0, c1, c2, c3) {
if (!IS_UNDEFINED(new.target)) { if (!IS_UNDEFINED(new.target)) {
throw MakeTypeError(kNotConstructor, "Uint32x4"); throw %make_type_error(kNotConstructor, "Uint32x4");
} }
return %CreateUint32x4(TO_NUMBER(c0), TO_NUMBER(c1), return %CreateUint32x4(TO_NUMBER(c0), TO_NUMBER(c1),
TO_NUMBER(c2), TO_NUMBER(c3)); TO_NUMBER(c2), TO_NUMBER(c3));
...@@ -461,7 +456,7 @@ function Uint32x4Constructor(c0, c1, c2, c3) { ...@@ -461,7 +456,7 @@ function Uint32x4Constructor(c0, c1, c2, c3) {
function Bool32x4Constructor(c0, c1, c2, c3) { function Bool32x4Constructor(c0, c1, c2, c3) {
if (!IS_UNDEFINED(new.target)) { if (!IS_UNDEFINED(new.target)) {
throw MakeTypeError(kNotConstructor, "Bool32x4"); throw %make_type_error(kNotConstructor, "Bool32x4");
} }
return %CreateBool32x4(c0, c1, c2, c3); return %CreateBool32x4(c0, c1, c2, c3);
} }
...@@ -469,7 +464,7 @@ function Bool32x4Constructor(c0, c1, c2, c3) { ...@@ -469,7 +464,7 @@ function Bool32x4Constructor(c0, c1, c2, c3) {
function Int16x8Constructor(c0, c1, c2, c3, c4, c5, c6, c7) { function Int16x8Constructor(c0, c1, c2, c3, c4, c5, c6, c7) {
if (!IS_UNDEFINED(new.target)) { if (!IS_UNDEFINED(new.target)) {
throw MakeTypeError(kNotConstructor, "Int16x8"); throw %make_type_error(kNotConstructor, "Int16x8");
} }
return %CreateInt16x8(TO_NUMBER(c0), TO_NUMBER(c1), return %CreateInt16x8(TO_NUMBER(c0), TO_NUMBER(c1),
TO_NUMBER(c2), TO_NUMBER(c3), TO_NUMBER(c2), TO_NUMBER(c3),
...@@ -480,7 +475,7 @@ function Int16x8Constructor(c0, c1, c2, c3, c4, c5, c6, c7) { ...@@ -480,7 +475,7 @@ function Int16x8Constructor(c0, c1, c2, c3, c4, c5, c6, c7) {
function Uint16x8Constructor(c0, c1, c2, c3, c4, c5, c6, c7) { function Uint16x8Constructor(c0, c1, c2, c3, c4, c5, c6, c7) {
if (!IS_UNDEFINED(new.target)) { if (!IS_UNDEFINED(new.target)) {
throw MakeTypeError(kNotConstructor, "Uint16x8"); throw %make_type_error(kNotConstructor, "Uint16x8");
} }
return %CreateUint16x8(TO_NUMBER(c0), TO_NUMBER(c1), return %CreateUint16x8(TO_NUMBER(c0), TO_NUMBER(c1),
TO_NUMBER(c2), TO_NUMBER(c3), TO_NUMBER(c2), TO_NUMBER(c3),
...@@ -491,7 +486,7 @@ function Uint16x8Constructor(c0, c1, c2, c3, c4, c5, c6, c7) { ...@@ -491,7 +486,7 @@ function Uint16x8Constructor(c0, c1, c2, c3, c4, c5, c6, c7) {
function Bool16x8Constructor(c0, c1, c2, c3, c4, c5, c6, c7) { function Bool16x8Constructor(c0, c1, c2, c3, c4, c5, c6, c7) {
if (!IS_UNDEFINED(new.target)) { if (!IS_UNDEFINED(new.target)) {
throw MakeTypeError(kNotConstructor, "Bool16x8"); throw %make_type_error(kNotConstructor, "Bool16x8");
} }
return %CreateBool16x8(c0, c1, c2, c3, c4, c5, c6, c7); return %CreateBool16x8(c0, c1, c2, c3, c4, c5, c6, c7);
} }
...@@ -500,7 +495,7 @@ function Bool16x8Constructor(c0, c1, c2, c3, c4, c5, c6, c7) { ...@@ -500,7 +495,7 @@ function Bool16x8Constructor(c0, c1, c2, c3, c4, c5, c6, c7) {
function Int8x16Constructor(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, function Int8x16Constructor(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11,
c12, c13, c14, c15) { c12, c13, c14, c15) {
if (!IS_UNDEFINED(new.target)) { if (!IS_UNDEFINED(new.target)) {
throw MakeTypeError(kNotConstructor, "Int8x16"); throw %make_type_error(kNotConstructor, "Int8x16");
} }
return %CreateInt8x16(TO_NUMBER(c0), TO_NUMBER(c1), return %CreateInt8x16(TO_NUMBER(c0), TO_NUMBER(c1),
TO_NUMBER(c2), TO_NUMBER(c3), TO_NUMBER(c2), TO_NUMBER(c3),
...@@ -516,7 +511,7 @@ function Int8x16Constructor(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, ...@@ -516,7 +511,7 @@ function Int8x16Constructor(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11,
function Uint8x16Constructor(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, function Uint8x16Constructor(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11,
c12, c13, c14, c15) { c12, c13, c14, c15) {
if (!IS_UNDEFINED(new.target)) { if (!IS_UNDEFINED(new.target)) {
throw MakeTypeError(kNotConstructor, "Uint8x16"); throw %make_type_error(kNotConstructor, "Uint8x16");
} }
return %CreateUint8x16(TO_NUMBER(c0), TO_NUMBER(c1), return %CreateUint8x16(TO_NUMBER(c0), TO_NUMBER(c1),
TO_NUMBER(c2), TO_NUMBER(c3), TO_NUMBER(c2), TO_NUMBER(c3),
...@@ -532,7 +527,7 @@ function Uint8x16Constructor(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, ...@@ -532,7 +527,7 @@ function Uint8x16Constructor(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11,
function Bool8x16Constructor(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, function Bool8x16Constructor(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11,
c12, c13, c14, c15) { c12, c13, c14, c15) {
if (!IS_UNDEFINED(new.target)) { if (!IS_UNDEFINED(new.target)) {
throw MakeTypeError(kNotConstructor, "Bool8x16"); throw %make_type_error(kNotConstructor, "Bool8x16");
} }
return %CreateBool8x16(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, return %CreateBool8x16(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
c13, c14, c15); c13, c14, c15);
......
...@@ -10,11 +10,6 @@ ...@@ -10,11 +10,6 @@
// Imports // Imports
var GlobalString = global.String; var GlobalString = global.String;
var MakeTypeError;
utils.Import(function(from) {
MakeTypeError = from.MakeTypeError;
});
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// http://tc39.github.io/proposal-string-pad-start-end/ // http://tc39.github.io/proposal-string-pad-start-end/
......
This diff is collapsed.
...@@ -84,7 +84,7 @@ macro IS_CALLABLE(arg) = (typeof(arg) === 'function'); ...@@ -84,7 +84,7 @@ macro IS_CALLABLE(arg) = (typeof(arg) === 'function');
# Macro for ES6 CheckObjectCoercible # Macro for ES6 CheckObjectCoercible
# Will throw a TypeError of the form "[functionName] called on null or undefined". # Will throw a TypeError of the form "[functionName] called on null or undefined".
macro CHECK_OBJECT_COERCIBLE(arg, functionName) = if (IS_NULL(%IS_VAR(arg)) || IS_UNDEFINED(arg)) throw MakeTypeError(kCalledOnNullOrUndefined, functionName); macro CHECK_OBJECT_COERCIBLE(arg, functionName) = if (IS_NULL(%IS_VAR(arg)) || IS_UNDEFINED(arg)) throw %make_type_error(kCalledOnNullOrUndefined, functionName);
# Inline macros. Use %IS_VAR to make sure arg is evaluated only once. # Inline macros. Use %IS_VAR to make sure arg is evaluated only once.
macro NUMBER_IS_NAN(arg) = (!%_IsSmi(%IS_VAR(arg)) && !(arg == arg)); macro NUMBER_IS_NAN(arg) = (!%_IsSmi(%IS_VAR(arg)) && !(arg == arg));
......
...@@ -11,15 +11,10 @@ ...@@ -11,15 +11,10 @@
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// Imports // Imports
var MakeGenericError = utils.ImportNow("make_generic_error");
var GlobalError = global.Error;
var GlobalRangeError = global.RangeError;
var GlobalSyntaxError = global.SyntaxError;
var GlobalTypeError = global.TypeError;
var GlobalURIError = global.URIError;
var Script = utils.ImportNow("Script"); var Script = utils.ImportNow("Script");
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// Script
/** /**
* Set up the Script function and constructor. * Set up the Script function and constructor.
...@@ -27,40 +22,6 @@ var Script = utils.ImportNow("Script"); ...@@ -27,40 +22,6 @@ var Script = utils.ImportNow("Script");
%FunctionSetInstanceClassName(Script, 'Script'); %FunctionSetInstanceClassName(Script, 'Script');
%AddNamedProperty(Script.prototype, 'constructor', Script, %AddNamedProperty(Script.prototype, 'constructor', Script,
DONT_ENUM | DONT_DELETE | READ_ONLY); DONT_ENUM | DONT_DELETE | READ_ONLY);
%SetCode(Script, function(x) {
// Script objects can only be created by the VM.
throw MakeError(kUnsupported);
});
function GetLineNumber(message) {
var start_position = %MessageGetStartPosition(message);
if (start_position == -1) return kNoLineNumberInfo;
var script = %MessageGetScript(message);
var location = script.locationFromPosition(start_position, true);
if (location == null) return kNoLineNumberInfo;
return location.line + 1;
}
//Returns the offset of the given position within the containing line.
function GetColumnNumber(message) {
var script = %MessageGetScript(message);
var start_position = %MessageGetStartPosition(message);
var location = script.locationFromPosition(start_position, true);
if (location == null) return -1;
return location.column;
}
// Returns the source code line containing the given source
// position, or the empty string if the position is invalid.
function GetSourceLine(message) {
var script = %MessageGetScript(message);
var start_position = %MessageGetStartPosition(message);
var location = script.locationFromPosition(start_position, true);
if (location == null) return "";
return location.sourceText;
}
/** /**
...@@ -112,43 +73,43 @@ utils.SetUpLockedPrototype(Script, [ ...@@ -112,43 +73,43 @@ utils.SetUpLockedPrototype(Script, [
] ]
); );
// ---------------------------------------------------------------------------- // -------------------------------------------------------------------
// Error implementation // Message
function MakeError(type, arg0, arg1, arg2) { function GetLineNumber(message) {
return MakeGenericError(GlobalError, type, arg0, arg1, arg2); var start_position = %MessageGetStartPosition(message);
if (start_position == -1) return kNoLineNumberInfo;
var script = %MessageGetScript(message);
var location = script.locationFromPosition(start_position, true);
if (location == null) return kNoLineNumberInfo;
return location.line + 1;
} }
function MakeRangeError(type, arg0, arg1, arg2) {
return MakeGenericError(GlobalRangeError, type, arg0, arg1, arg2);
}
function MakeSyntaxError(type, arg0, arg1, arg2) { //Returns the offset of the given position within the containing line.
return MakeGenericError(GlobalSyntaxError, type, arg0, arg1, arg2); function GetColumnNumber(message) {
var script = %MessageGetScript(message);
var start_position = %MessageGetStartPosition(message);
var location = script.locationFromPosition(start_position, true);
if (location == null) return -1;
return location.column;
} }
function MakeTypeError(type, arg0, arg1, arg2) {
return MakeGenericError(GlobalTypeError, type, arg0, arg1, arg2);
}
function MakeURIError() { // Returns the source code line containing the given source
return MakeGenericError(GlobalURIError, kURIMalformed); // position, or the empty string if the position is invalid.
function GetSourceLine(message) {
var script = %MessageGetScript(message);
var start_position = %MessageGetStartPosition(message);
var location = script.locationFromPosition(start_position, true);
if (location == null) return "";
return location.sourceText;
} }
%InstallToContext([ %InstallToContext([
"make_range_error", MakeRangeError,
"make_type_error", MakeTypeError,
"message_get_column_number", GetColumnNumber, "message_get_column_number", GetColumnNumber,
"message_get_line_number", GetLineNumber, "message_get_line_number", GetLineNumber,
"message_get_source_line", GetSourceLine, "message_get_source_line", GetSourceLine,
]); ]);
utils.Export(function(to) {
to.MakeError = MakeError;
to.MakeRangeError = MakeRangeError;
to.MakeSyntaxError = MakeSyntaxError;
to.MakeTypeError = MakeTypeError;
to.MakeURIError = MakeURIError;
});
}); });
...@@ -191,9 +191,6 @@ function PostNatives(utils) { ...@@ -191,9 +191,6 @@ function PostNatives(utils) {
"IntlParseDate", "IntlParseDate",
"IntlParseNumber", "IntlParseNumber",
"IsNaN", "IsNaN",
"MakeError",
"MakeRangeError",
"MakeTypeError",
"MapEntries", "MapEntries",
"MapIterator", "MapIterator",
"MapIteratorNext", "MapIteratorNext",
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
// Imports // Imports
var InternalArray = utils.InternalArray; var InternalArray = utils.InternalArray;
var MakeTypeError;
var promiseCombinedDeferredSymbol = var promiseCombinedDeferredSymbol =
utils.ImportNow("promise_combined_deferred_symbol"); utils.ImportNow("promise_combined_deferred_symbol");
var promiseHasHandlerSymbol = var promiseHasHandlerSymbol =
...@@ -31,7 +30,6 @@ var speciesSymbol = utils.ImportNow("species_symbol"); ...@@ -31,7 +30,6 @@ var speciesSymbol = utils.ImportNow("species_symbol");
var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
utils.Import(function(from) { utils.Import(function(from) {
MakeTypeError = from.MakeTypeError;
SpeciesConstructor = from.SpeciesConstructor; SpeciesConstructor = from.SpeciesConstructor;
}); });
...@@ -79,9 +77,9 @@ var GlobalPromise = function Promise(executor) { ...@@ -79,9 +77,9 @@ var GlobalPromise = function Promise(executor) {
if (executor === promiseRawSymbol) { if (executor === promiseRawSymbol) {
return %_NewObject(GlobalPromise, new.target); return %_NewObject(GlobalPromise, new.target);
} }
if (IS_UNDEFINED(new.target)) throw MakeTypeError(kNotAPromise, this); if (IS_UNDEFINED(new.target)) throw %make_type_error(kNotAPromise, this);
if (!IS_CALLABLE(executor)) { if (!IS_CALLABLE(executor)) {
throw MakeTypeError(kResolverNotAFunction, executor); throw %make_type_error(kResolverNotAFunction, executor);
} }
var promise = PromiseInit(%_NewObject(GlobalPromise, new.target)); var promise = PromiseInit(%_NewObject(GlobalPromise, new.target));
...@@ -240,7 +238,7 @@ function PromiseCreate() { ...@@ -240,7 +238,7 @@ function PromiseCreate() {
// Promise Resolve Functions, steps 6-13 // Promise Resolve Functions, steps 6-13
function ResolvePromise(promise, resolution) { function ResolvePromise(promise, resolution) {
if (resolution === promise) { if (resolution === promise) {
return RejectPromise(promise, MakeTypeError(kPromiseCyclic, resolution)); return RejectPromise(promise, %make_type_error(kPromiseCyclic, resolution));
} }
if (IS_RECEIVER(resolution)) { if (IS_RECEIVER(resolution)) {
// 25.4.1.3.2 steps 8-12 // 25.4.1.3.2 steps 8-12
...@@ -337,13 +335,13 @@ function NewPromiseCapability(C) { ...@@ -337,13 +335,13 @@ function NewPromiseCapability(C) {
var result = {promise: UNDEFINED, resolve: UNDEFINED, reject: UNDEFINED }; var result = {promise: UNDEFINED, resolve: UNDEFINED, reject: UNDEFINED };
result.promise = new C((resolve, reject) => { result.promise = new C((resolve, reject) => {
if (!IS_UNDEFINED(result.resolve) || !IS_UNDEFINED(result.reject)) if (!IS_UNDEFINED(result.resolve) || !IS_UNDEFINED(result.reject))
throw MakeTypeError(kPromiseExecutorAlreadyInvoked); throw %make_type_error(kPromiseExecutorAlreadyInvoked);
result.resolve = resolve; result.resolve = resolve;
result.reject = reject; result.reject = reject;
}); });
if (!IS_CALLABLE(result.resolve) || !IS_CALLABLE(result.reject)) if (!IS_CALLABLE(result.resolve) || !IS_CALLABLE(result.reject))
throw MakeTypeError(kPromiseNonCallable); throw %make_type_error(kPromiseNonCallable);
return result; return result;
} }
...@@ -364,7 +362,7 @@ function PromiseAccept(x) { ...@@ -364,7 +362,7 @@ function PromiseAccept(x) {
// Promise.reject ( x ) // Promise.reject ( x )
function PromiseReject(r) { function PromiseReject(r) {
if (!IS_RECEIVER(this)) { if (!IS_RECEIVER(this)) {
throw MakeTypeError(kCalledOnNonObject, PromiseResolve); throw %make_type_error(kCalledOnNonObject, PromiseResolve);
} }
if (this === GlobalPromise) { if (this === GlobalPromise) {
// Optimized case, avoid extra closure. // Optimized case, avoid extra closure.
...@@ -437,7 +435,7 @@ function PerformPromiseThen(promise, onResolve, onReject, resultCapability) { ...@@ -437,7 +435,7 @@ function PerformPromiseThen(promise, onResolve, onReject, resultCapability) {
function PromiseThen(onResolve, onReject) { function PromiseThen(onResolve, onReject) {
var status = GET_PRIVATE(this, promiseStateSymbol); var status = GET_PRIVATE(this, promiseStateSymbol);
if (IS_UNDEFINED(status)) { if (IS_UNDEFINED(status)) {
throw MakeTypeError(kNotAPromise, this); throw %make_type_error(kNotAPromise, this);
} }
var constructor = SpeciesConstructor(this, GlobalPromise); var constructor = SpeciesConstructor(this, GlobalPromise);
...@@ -464,7 +462,7 @@ function PromiseCatch(onReject) { ...@@ -464,7 +462,7 @@ function PromiseCatch(onReject) {
// Promise.resolve ( x ) // Promise.resolve ( x )
function PromiseResolve(x) { function PromiseResolve(x) {
if (!IS_RECEIVER(this)) { if (!IS_RECEIVER(this)) {
throw MakeTypeError(kCalledOnNonObject, PromiseResolve); throw %make_type_error(kCalledOnNonObject, PromiseResolve);
} }
if (IsPromise(x) && x.constructor === this) return x; if (IsPromise(x) && x.constructor === this) return x;
...@@ -484,7 +482,7 @@ function PromiseResolve(x) { ...@@ -484,7 +482,7 @@ function PromiseResolve(x) {
// Promise.all ( iterable ) // Promise.all ( iterable )
function PromiseAll(iterable) { function PromiseAll(iterable) {
if (!IS_RECEIVER(this)) { if (!IS_RECEIVER(this)) {
throw MakeTypeError(kCalledOnNonObject, "Promise.all"); throw %make_type_error(kCalledOnNonObject, "Promise.all");
} }
var deferred = NewPromiseCapability(this); var deferred = NewPromiseCapability(this);
...@@ -535,7 +533,7 @@ function PromiseAll(iterable) { ...@@ -535,7 +533,7 @@ function PromiseAll(iterable) {
// Promise.race ( iterable ) // Promise.race ( iterable )
function PromiseRace(iterable) { function PromiseRace(iterable) {
if (!IS_RECEIVER(this)) { if (!IS_RECEIVER(this)) {
throw MakeTypeError(kCalledOnNonObject, PromiseRace); throw %make_type_error(kCalledOnNonObject, PromiseRace);
} }
var deferred = NewPromiseCapability(this); var deferred = NewPromiseCapability(this);
......
...@@ -16,7 +16,6 @@ var GlobalRegExp = global.RegExp; ...@@ -16,7 +16,6 @@ var GlobalRegExp = global.RegExp;
var GlobalRegExpPrototype; var GlobalRegExpPrototype;
var InternalArray = utils.InternalArray; var InternalArray = utils.InternalArray;
var InternalPackedArray = utils.InternalPackedArray; var InternalPackedArray = utils.InternalPackedArray;
var MakeTypeError;
var MaxSimple; var MaxSimple;
var MinSimple; var MinSimple;
var matchSymbol = utils.ImportNow("match_symbol"); var matchSymbol = utils.ImportNow("match_symbol");
...@@ -28,7 +27,6 @@ var SpeciesConstructor; ...@@ -28,7 +27,6 @@ var SpeciesConstructor;
utils.Import(function(from) { utils.Import(function(from) {
ExpandReplacement = from.ExpandReplacement; ExpandReplacement = from.ExpandReplacement;
MakeTypeError = from.MakeTypeError;
MaxSimple = from.MaxSimple; MaxSimple = from.MaxSimple;
MinSimple = from.MinSimple; MinSimple = from.MinSimple;
SpeciesConstructor = from.SpeciesConstructor; SpeciesConstructor = from.SpeciesConstructor;
...@@ -114,12 +112,12 @@ function RegExpConstructor(pattern, flags) { ...@@ -114,12 +112,12 @@ function RegExpConstructor(pattern, flags) {
// ES#sec-regexp.prototype.compile RegExp.prototype.compile (pattern, flags) // ES#sec-regexp.prototype.compile RegExp.prototype.compile (pattern, flags)
function RegExpCompileJS(pattern, flags) { function RegExpCompileJS(pattern, flags) {
if (!IS_REGEXP(this)) { if (!IS_REGEXP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
"RegExp.prototype.compile", this); "RegExp.prototype.compile", this);
} }
if (IS_REGEXP(pattern)) { if (IS_REGEXP(pattern)) {
if (!IS_UNDEFINED(flags)) throw MakeTypeError(kRegExpFlags); if (!IS_UNDEFINED(flags)) throw %make_type_error(kRegExpFlags);
flags = PatternFlags(pattern); flags = PatternFlags(pattern);
pattern = REGEXP_SOURCE(pattern); pattern = REGEXP_SOURCE(pattern);
...@@ -180,7 +178,7 @@ function RegExpExecNoTests(regexp, string, start) { ...@@ -180,7 +178,7 @@ function RegExpExecNoTests(regexp, string, start) {
// RegExp.prototype.exec ( string ) // RegExp.prototype.exec ( string )
function RegExpSubclassExecJS(string) { function RegExpSubclassExecJS(string) {
if (!IS_REGEXP(this)) { if (!IS_REGEXP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'RegExp.prototype.exec', this); 'RegExp.prototype.exec', this);
} }
...@@ -226,7 +224,7 @@ function RegExpSubclassExecJS(string) { ...@@ -226,7 +224,7 @@ function RegExpSubclassExecJS(string) {
// Legacy implementation of RegExp.prototype.exec // Legacy implementation of RegExp.prototype.exec
function RegExpExecJS(string) { function RegExpExecJS(string) {
if (!IS_REGEXP(this)) { if (!IS_REGEXP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'RegExp.prototype.exec', this); 'RegExp.prototype.exec', this);
} }
...@@ -273,7 +271,7 @@ function RegExpSubclassExec(regexp, string, exec) { ...@@ -273,7 +271,7 @@ function RegExpSubclassExec(regexp, string, exec) {
if (IS_CALLABLE(exec)) { if (IS_CALLABLE(exec)) {
var result = %_Call(exec, regexp, string); var result = %_Call(exec, regexp, string);
if (!IS_RECEIVER(result) && !IS_NULL(result)) { if (!IS_RECEIVER(result) && !IS_NULL(result)) {
throw MakeTypeError(kInvalidRegExpExecResult); throw %make_type_error(kInvalidRegExpExecResult);
} }
return result; return result;
} }
...@@ -293,7 +291,7 @@ var regexp_val; ...@@ -293,7 +291,7 @@ var regexp_val;
// else implements. // else implements.
function RegExpTest(string) { function RegExpTest(string) {
if (!IS_REGEXP(this)) { if (!IS_REGEXP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'RegExp.prototype.test', this); 'RegExp.prototype.test', this);
} }
string = TO_STRING(string); string = TO_STRING(string);
...@@ -344,7 +342,7 @@ function RegExpTest(string) { ...@@ -344,7 +342,7 @@ function RegExpTest(string) {
// ES#sec-regexp.prototype.test RegExp.prototype.test ( S ) // ES#sec-regexp.prototype.test RegExp.prototype.test ( S )
function RegExpSubclassTest(string) { function RegExpSubclassTest(string) {
if (!IS_RECEIVER(this)) { if (!IS_RECEIVER(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'RegExp.prototype.test', this); 'RegExp.prototype.test', this);
} }
string = TO_STRING(string); string = TO_STRING(string);
...@@ -368,7 +366,7 @@ function TrimRegExp(regexp) { ...@@ -368,7 +366,7 @@ function TrimRegExp(regexp) {
function RegExpToString() { function RegExpToString() {
if (!IS_RECEIVER(this)) { if (!IS_RECEIVER(this)) {
throw MakeTypeError( throw %make_type_error(
kIncompatibleMethodReceiver, 'RegExp.prototype.toString', this); kIncompatibleMethodReceiver, 'RegExp.prototype.toString', this);
} }
if (this === GlobalRegExpPrototype) { if (this === GlobalRegExpPrototype) {
...@@ -392,7 +390,7 @@ function AtSurrogatePair(subject, index) { ...@@ -392,7 +390,7 @@ function AtSurrogatePair(subject, index) {
function RegExpSplit(string, limit) { function RegExpSplit(string, limit) {
// TODO(yangguo): allow non-regexp receivers. // TODO(yangguo): allow non-regexp receivers.
if (!IS_REGEXP(this)) { if (!IS_REGEXP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
"RegExp.prototype.@@split", this); "RegExp.prototype.@@split", this);
} }
var separator = this; var separator = this;
...@@ -466,7 +464,7 @@ function RegExpSplit(string, limit) { ...@@ -466,7 +464,7 @@ function RegExpSplit(string, limit) {
// RegExp.prototype [ @@split ] ( string, limit ) // RegExp.prototype [ @@split ] ( string, limit )
function RegExpSubclassSplit(string, limit) { function RegExpSubclassSplit(string, limit) {
if (!IS_RECEIVER(this)) { if (!IS_RECEIVER(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
"RegExp.prototype.@@split", this); "RegExp.prototype.@@split", this);
} }
string = TO_STRING(string); string = TO_STRING(string);
...@@ -542,7 +540,7 @@ function RegExpSubclassSplit(string, limit) { ...@@ -542,7 +540,7 @@ function RegExpSubclassSplit(string, limit) {
// RegExp.prototype [ @@match ] ( string ) // RegExp.prototype [ @@match ] ( string )
function RegExpSubclassMatch(string) { function RegExpSubclassMatch(string) {
if (!IS_RECEIVER(this)) { if (!IS_RECEIVER(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
"RegExp.prototype.@@match", this); "RegExp.prototype.@@match", this);
} }
string = TO_STRING(string); string = TO_STRING(string);
...@@ -700,7 +698,7 @@ function StringReplaceNonGlobalRegExpWithFunction(subject, regexp, replace) { ...@@ -700,7 +698,7 @@ function StringReplaceNonGlobalRegExpWithFunction(subject, regexp, replace) {
function RegExpReplace(string, replace) { function RegExpReplace(string, replace) {
if (!IS_REGEXP(this)) { if (!IS_REGEXP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
"RegExp.prototype.@@replace", this); "RegExp.prototype.@@replace", this);
} }
var subject = TO_STRING(string); var subject = TO_STRING(string);
...@@ -856,7 +854,7 @@ function SetAdvancedStringIndex(regexp, string, unicode) { ...@@ -856,7 +854,7 @@ function SetAdvancedStringIndex(regexp, string, unicode) {
// RegExp.prototype [ @@replace ] ( string, replaceValue ) // RegExp.prototype [ @@replace ] ( string, replaceValue )
function RegExpSubclassReplace(string, replace) { function RegExpSubclassReplace(string, replace) {
if (!IS_RECEIVER(this)) { if (!IS_RECEIVER(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
"RegExp.prototype.@@replace", this); "RegExp.prototype.@@replace", this);
} }
string = TO_STRING(string); string = TO_STRING(string);
...@@ -941,7 +939,7 @@ function RegExpSubclassReplace(string, replace) { ...@@ -941,7 +939,7 @@ function RegExpSubclassReplace(string, replace) {
// RegExp.prototype [ @@search ] ( string ) // RegExp.prototype [ @@search ] ( string )
function RegExpSubclassSearch(string) { function RegExpSubclassSearch(string) {
if (!IS_RECEIVER(this)) { if (!IS_RECEIVER(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
"RegExp.prototype.@@search", this); "RegExp.prototype.@@search", this);
} }
string = TO_STRING(string); string = TO_STRING(string);
...@@ -1019,7 +1017,7 @@ function RegExpMakeCaptureGetter(n) { ...@@ -1019,7 +1017,7 @@ function RegExpMakeCaptureGetter(n) {
// ES6 21.2.5.3. // ES6 21.2.5.3.
function RegExpGetFlags() { function RegExpGetFlags() {
if (!IS_RECEIVER(this)) { if (!IS_RECEIVER(this)) {
throw MakeTypeError( throw %make_type_error(
kRegExpNonObject, "RegExp.prototype.flags", TO_STRING(this)); kRegExpNonObject, "RegExp.prototype.flags", TO_STRING(this));
} }
var result = ''; var result = '';
...@@ -1040,7 +1038,7 @@ function RegExpGetGlobal() { ...@@ -1040,7 +1038,7 @@ function RegExpGetGlobal() {
%IncrementUseCounter(kRegExpPrototypeOldFlagGetter); %IncrementUseCounter(kRegExpPrototypeOldFlagGetter);
return UNDEFINED; return UNDEFINED;
} }
throw MakeTypeError(kRegExpNonRegExp, "RegExp.prototype.global"); throw %make_type_error(kRegExpNonRegExp, "RegExp.prototype.global");
} }
return TO_BOOLEAN(REGEXP_GLOBAL(this)); return TO_BOOLEAN(REGEXP_GLOBAL(this));
} }
...@@ -1055,7 +1053,7 @@ function RegExpGetIgnoreCase() { ...@@ -1055,7 +1053,7 @@ function RegExpGetIgnoreCase() {
%IncrementUseCounter(kRegExpPrototypeOldFlagGetter); %IncrementUseCounter(kRegExpPrototypeOldFlagGetter);
return UNDEFINED; return UNDEFINED;
} }
throw MakeTypeError(kRegExpNonRegExp, "RegExp.prototype.ignoreCase"); throw %make_type_error(kRegExpNonRegExp, "RegExp.prototype.ignoreCase");
} }
return TO_BOOLEAN(REGEXP_IGNORE_CASE(this)); return TO_BOOLEAN(REGEXP_IGNORE_CASE(this));
} }
...@@ -1069,7 +1067,7 @@ function RegExpGetMultiline() { ...@@ -1069,7 +1067,7 @@ function RegExpGetMultiline() {
%IncrementUseCounter(kRegExpPrototypeOldFlagGetter); %IncrementUseCounter(kRegExpPrototypeOldFlagGetter);
return UNDEFINED; return UNDEFINED;
} }
throw MakeTypeError(kRegExpNonRegExp, "RegExp.prototype.multiline"); throw %make_type_error(kRegExpNonRegExp, "RegExp.prototype.multiline");
} }
return TO_BOOLEAN(REGEXP_MULTILINE(this)); return TO_BOOLEAN(REGEXP_MULTILINE(this));
} }
...@@ -1083,7 +1081,7 @@ function RegExpGetSource() { ...@@ -1083,7 +1081,7 @@ function RegExpGetSource() {
%IncrementUseCounter(kRegExpPrototypeSourceGetter); %IncrementUseCounter(kRegExpPrototypeSourceGetter);
return "(?:)"; return "(?:)";
} }
throw MakeTypeError(kRegExpNonRegExp, "RegExp.prototype.source"); throw %make_type_error(kRegExpNonRegExp, "RegExp.prototype.source");
} }
return REGEXP_SOURCE(this); return REGEXP_SOURCE(this);
} }
...@@ -1098,7 +1096,7 @@ function RegExpGetSticky() { ...@@ -1098,7 +1096,7 @@ function RegExpGetSticky() {
%IncrementUseCounter(kRegExpPrototypeStickyGetter); %IncrementUseCounter(kRegExpPrototypeStickyGetter);
return UNDEFINED; return UNDEFINED;
} }
throw MakeTypeError(kRegExpNonRegExp, "RegExp.prototype.sticky"); throw %make_type_error(kRegExpNonRegExp, "RegExp.prototype.sticky");
} }
return TO_BOOLEAN(REGEXP_STICKY(this)); return TO_BOOLEAN(REGEXP_STICKY(this));
} }
...@@ -1113,7 +1111,7 @@ function RegExpGetUnicode() { ...@@ -1113,7 +1111,7 @@ function RegExpGetUnicode() {
%IncrementUseCounter(kRegExpPrototypeUnicodeGetter); %IncrementUseCounter(kRegExpPrototypeUnicodeGetter);
return UNDEFINED; return UNDEFINED;
} }
throw MakeTypeError(kRegExpNonRegExp, "RegExp.prototype.unicode"); throw %make_type_error(kRegExpNonRegExp, "RegExp.prototype.unicode");
} }
return TO_BOOLEAN(REGEXP_UNICODE(this)); return TO_BOOLEAN(REGEXP_UNICODE(this));
} }
......
...@@ -19,13 +19,9 @@ ...@@ -19,13 +19,9 @@
var GlobalArray = global.Array; var GlobalArray = global.Array;
var GlobalBoolean = global.Boolean; var GlobalBoolean = global.Boolean;
var GlobalString = global.String; var GlobalString = global.String;
var MakeRangeError;
var MakeTypeError;
var speciesSymbol; var speciesSymbol;
utils.Import(function(from) { utils.Import(function(from) {
MakeRangeError = from.MakeRangeError;
MakeTypeError = from.MakeTypeError;
speciesSymbol = from.species_symbol; speciesSymbol = from.species_symbol;
}); });
...@@ -40,7 +36,7 @@ utils.Import(function(from) { ...@@ -40,7 +36,7 @@ utils.Import(function(from) {
function ToPositiveInteger(x, rangeErrorIndex) { function ToPositiveInteger(x, rangeErrorIndex) {
var i = TO_INTEGER(x) + 0; var i = TO_INTEGER(x) + 0;
if (i < 0) throw MakeRangeError(rangeErrorIndex); if (i < 0) throw %make_range_error(rangeErrorIndex);
return i; return i;
} }
...@@ -66,7 +62,7 @@ function SpeciesConstructor(object, defaultConstructor) { ...@@ -66,7 +62,7 @@ function SpeciesConstructor(object, defaultConstructor) {
return defaultConstructor; return defaultConstructor;
} }
if (!IS_RECEIVER(constructor)) { if (!IS_RECEIVER(constructor)) {
throw MakeTypeError(kConstructorNotReceiver); throw %make_type_error(kConstructorNotReceiver);
} }
var species = constructor[speciesSymbol]; var species = constructor[speciesSymbol];
if (IS_NULL_OR_UNDEFINED(species)) { if (IS_NULL_OR_UNDEFINED(species)) {
...@@ -75,7 +71,7 @@ function SpeciesConstructor(object, defaultConstructor) { ...@@ -75,7 +71,7 @@ function SpeciesConstructor(object, defaultConstructor) {
if (%IsConstructor(species)) { if (%IsConstructor(species)) {
return species; return species;
} }
throw MakeTypeError(kSpeciesNotConstructor); throw %make_type_error(kSpeciesNotConstructor);
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
......
...@@ -9,11 +9,6 @@ ...@@ -9,11 +9,6 @@
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// Imports // Imports
var InternalArray = utils.InternalArray; var InternalArray = utils.InternalArray;
var MakeTypeError;
utils.Import(function(from) {
MakeTypeError = from.MakeTypeError;
});
// ------------------------------------------------------------------- // -------------------------------------------------------------------
...@@ -35,7 +30,7 @@ function SpreadArguments() { ...@@ -35,7 +30,7 @@ function SpreadArguments() {
function SpreadIterable(collection) { function SpreadIterable(collection) {
if (IS_NULL_OR_UNDEFINED(collection)) { if (IS_NULL_OR_UNDEFINED(collection)) {
throw MakeTypeError(kNotIterable, collection); throw %make_type_error(kNotIterable, collection);
} }
var args = new InternalArray(); var args = new InternalArray();
......
...@@ -14,17 +14,12 @@ ...@@ -14,17 +14,12 @@
var GlobalString = global.String; var GlobalString = global.String;
var IteratorPrototype = utils.ImportNow("IteratorPrototype"); var IteratorPrototype = utils.ImportNow("IteratorPrototype");
var iteratorSymbol = utils.ImportNow("iterator_symbol"); var iteratorSymbol = utils.ImportNow("iterator_symbol");
var MakeTypeError;
var stringIteratorIteratedStringSymbol = var stringIteratorIteratedStringSymbol =
utils.ImportNow("string_iterator_iterated_string_symbol"); utils.ImportNow("string_iterator_iterated_string_symbol");
var stringIteratorNextIndexSymbol = var stringIteratorNextIndexSymbol =
utils.ImportNow("string_iterator_next_index_symbol"); utils.ImportNow("string_iterator_next_index_symbol");
var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
utils.Import(function(from) {
MakeTypeError = from.MakeTypeError;
});
// ------------------------------------------------------------------- // -------------------------------------------------------------------
function StringIterator() {} function StringIterator() {}
...@@ -49,7 +44,7 @@ function StringIteratorNext() { ...@@ -49,7 +44,7 @@ function StringIteratorNext() {
if (!IS_RECEIVER(iterator) || if (!IS_RECEIVER(iterator) ||
!HAS_DEFINED_PRIVATE(iterator, stringIteratorNextIndexSymbol)) { !HAS_DEFINED_PRIVATE(iterator, stringIteratorNextIndexSymbol)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'String Iterator.prototype.next'); 'String Iterator.prototype.next');
} }
......
...@@ -14,8 +14,6 @@ var ArrayJoin; ...@@ -14,8 +14,6 @@ var ArrayJoin;
var GlobalRegExp = global.RegExp; var GlobalRegExp = global.RegExp;
var GlobalString = global.String; var GlobalString = global.String;
var IsRegExp; var IsRegExp;
var MakeRangeError;
var MakeTypeError;
var MaxSimple; var MaxSimple;
var MinSimple; var MinSimple;
var RegExpInitialize; var RegExpInitialize;
...@@ -28,8 +26,6 @@ utils.Import(function(from) { ...@@ -28,8 +26,6 @@ utils.Import(function(from) {
ArrayIndexOf = from.ArrayIndexOf; ArrayIndexOf = from.ArrayIndexOf;
ArrayJoin = from.ArrayJoin; ArrayJoin = from.ArrayJoin;
IsRegExp = from.IsRegExp; IsRegExp = from.IsRegExp;
MakeRangeError = from.MakeRangeError;
MakeTypeError = from.MakeTypeError;
MaxSimple = from.MaxSimple; MaxSimple = from.MaxSimple;
MinSimple = from.MinSimple; MinSimple = from.MinSimple;
RegExpInitialize = from.RegExpInitialize; RegExpInitialize = from.RegExpInitialize;
...@@ -138,7 +134,7 @@ function StringNormalize(formArg) { // length == 0 ...@@ -138,7 +134,7 @@ function StringNormalize(formArg) { // length == 0
var NORMALIZATION_FORMS = ['NFC', 'NFD', 'NFKC', 'NFKD']; var NORMALIZATION_FORMS = ['NFC', 'NFD', 'NFKC', 'NFKD'];
var normalizationForm = %_Call(ArrayIndexOf, NORMALIZATION_FORMS, form); var normalizationForm = %_Call(ArrayIndexOf, NORMALIZATION_FORMS, form);
if (normalizationForm === -1) { if (normalizationForm === -1) {
throw MakeRangeError(kNormalizationForm, throw %make_range_error(kNormalizationForm,
%_Call(ArrayJoin, NORMALIZATION_FORMS, ', ')); %_Call(ArrayJoin, NORMALIZATION_FORMS, ', '));
} }
...@@ -583,14 +579,14 @@ function StringRepeat(count) { ...@@ -583,14 +579,14 @@ function StringRepeat(count) {
var s = TO_STRING(this); var s = TO_STRING(this);
var n = TO_INTEGER(count); var n = TO_INTEGER(count);
if (n < 0 || n === INFINITY) throw MakeRangeError(kInvalidCountValue); if (n < 0 || n === INFINITY) throw %make_range_error(kInvalidCountValue);
// Early return to allow an arbitrarily-large repeat of the empty string. // Early return to allow an arbitrarily-large repeat of the empty string.
if (s.length === 0) return ""; if (s.length === 0) return "";
// The maximum string length is stored in a smi, so a longer repeat // The maximum string length is stored in a smi, so a longer repeat
// must result in a range error. // must result in a range error.
if (n > %_MaxSmi()) throw MakeRangeError(kInvalidCountValue); if (n > %_MaxSmi()) throw %make_range_error(kInvalidCountValue);
var r = ""; var r = "";
while (true) { while (true) {
...@@ -609,7 +605,7 @@ function StringStartsWith(searchString, position) { // length == 1 ...@@ -609,7 +605,7 @@ function StringStartsWith(searchString, position) { // length == 1
var s = TO_STRING(this); var s = TO_STRING(this);
if (IsRegExp(searchString)) { if (IsRegExp(searchString)) {
throw MakeTypeError(kFirstArgumentNotRegExp, "String.prototype.startsWith"); throw %make_type_error(kFirstArgumentNotRegExp, "String.prototype.startsWith");
} }
var ss = TO_STRING(searchString); var ss = TO_STRING(searchString);
...@@ -635,7 +631,7 @@ function StringEndsWith(searchString, position) { // length == 1 ...@@ -635,7 +631,7 @@ function StringEndsWith(searchString, position) { // length == 1
var s = TO_STRING(this); var s = TO_STRING(this);
if (IsRegExp(searchString)) { if (IsRegExp(searchString)) {
throw MakeTypeError(kFirstArgumentNotRegExp, "String.prototype.endsWith"); throw %make_type_error(kFirstArgumentNotRegExp, "String.prototype.endsWith");
} }
var ss = TO_STRING(searchString); var ss = TO_STRING(searchString);
...@@ -662,7 +658,7 @@ function StringIncludes(searchString, position) { // length == 1 ...@@ -662,7 +658,7 @@ function StringIncludes(searchString, position) { // length == 1
var string = TO_STRING(this); var string = TO_STRING(this);
if (IsRegExp(searchString)) { if (IsRegExp(searchString)) {
throw MakeTypeError(kFirstArgumentNotRegExp, "String.prototype.includes"); throw %make_type_error(kFirstArgumentNotRegExp, "String.prototype.includes");
} }
searchString = TO_STRING(searchString); searchString = TO_STRING(searchString);
......
...@@ -16,7 +16,6 @@ var hasInstanceSymbol = utils.ImportNow("has_instance_symbol"); ...@@ -16,7 +16,6 @@ var hasInstanceSymbol = utils.ImportNow("has_instance_symbol");
var isConcatSpreadableSymbol = var isConcatSpreadableSymbol =
utils.ImportNow("is_concat_spreadable_symbol"); utils.ImportNow("is_concat_spreadable_symbol");
var iteratorSymbol = utils.ImportNow("iterator_symbol"); var iteratorSymbol = utils.ImportNow("iterator_symbol");
var MakeTypeError;
var matchSymbol = utils.ImportNow("match_symbol"); var matchSymbol = utils.ImportNow("match_symbol");
var replaceSymbol = utils.ImportNow("replace_symbol"); var replaceSymbol = utils.ImportNow("replace_symbol");
var searchSymbol = utils.ImportNow("search_symbol"); var searchSymbol = utils.ImportNow("search_symbol");
...@@ -26,10 +25,6 @@ var toPrimitiveSymbol = utils.ImportNow("to_primitive_symbol"); ...@@ -26,10 +25,6 @@ var toPrimitiveSymbol = utils.ImportNow("to_primitive_symbol");
var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
var unscopablesSymbol = utils.ImportNow("unscopables_symbol"); var unscopablesSymbol = utils.ImportNow("unscopables_symbol");
utils.Import(function(from) {
MakeTypeError = from.MakeTypeError;
});
// ------------------------------------------------------------------- // -------------------------------------------------------------------
function SymbolFor(key) { function SymbolFor(key) {
...@@ -45,7 +40,7 @@ function SymbolFor(key) { ...@@ -45,7 +40,7 @@ function SymbolFor(key) {
function SymbolKeyFor(symbol) { function SymbolKeyFor(symbol) {
if (!IS_SYMBOL(symbol)) throw MakeTypeError(kSymbolKeyFor, symbol); if (!IS_SYMBOL(symbol)) throw %make_type_error(kSymbolKeyFor, symbol);
return %SymbolRegistry().keyFor[symbol]; return %SymbolRegistry().keyFor[symbol];
} }
......
This diff is collapsed.
...@@ -12,18 +12,9 @@ ...@@ -12,18 +12,9 @@
var GlobalNumber = global.Number; var GlobalNumber = global.Number;
var GlobalObject = global.Object; var GlobalObject = global.Object;
var iteratorSymbol = utils.ImportNow("iterator_symbol"); var iteratorSymbol = utils.ImportNow("iterator_symbol");
var MakeRangeError;
var MakeSyntaxError;
var MakeTypeError;
var NaN = %GetRootNaN(); var NaN = %GetRootNaN();
var ObjectToString = utils.ImportNow("object_to_string"); var ObjectToString = utils.ImportNow("object_to_string");
utils.Import(function(from) {
MakeRangeError = from.MakeRangeError;
MakeSyntaxError = from.MakeSyntaxError;
MakeTypeError = from.MakeTypeError;
});
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
...@@ -136,7 +127,7 @@ function GetMethod(obj, p) { ...@@ -136,7 +127,7 @@ function GetMethod(obj, p) {
var func = obj[p]; var func = obj[p];
if (IS_NULL_OR_UNDEFINED(func)) return UNDEFINED; if (IS_NULL_OR_UNDEFINED(func)) return UNDEFINED;
if (IS_CALLABLE(func)) return func; if (IS_CALLABLE(func)) return func;
throw MakeTypeError(kCalledNonCallable, typeof func); throw %make_type_error(kCalledNonCallable, typeof func);
} }
// ES6 section 19.1.2.18. // ES6 section 19.1.2.18.
...@@ -144,7 +135,7 @@ function ObjectSetPrototypeOf(obj, proto) { ...@@ -144,7 +135,7 @@ function ObjectSetPrototypeOf(obj, proto) {
CHECK_OBJECT_COERCIBLE(obj, "Object.setPrototypeOf"); CHECK_OBJECT_COERCIBLE(obj, "Object.setPrototypeOf");
if (proto !== null && !IS_RECEIVER(proto)) { if (proto !== null && !IS_RECEIVER(proto)) {
throw MakeTypeError(kProtoObjectOrNull, proto); throw %make_type_error(kProtoObjectOrNull, proto);
} }
if (IS_RECEIVER(obj)) { if (IS_RECEIVER(obj)) {
...@@ -289,11 +280,11 @@ function GetIterator(obj, method) { ...@@ -289,11 +280,11 @@ function GetIterator(obj, method) {
method = obj[iteratorSymbol]; method = obj[iteratorSymbol];
} }
if (!IS_CALLABLE(method)) { if (!IS_CALLABLE(method)) {
throw MakeTypeError(kNotIterable, obj); throw %make_type_error(kNotIterable, obj);
} }
var iterator = %_Call(method, obj); var iterator = %_Call(method, obj);
if (!IS_RECEIVER(iterator)) { if (!IS_RECEIVER(iterator)) {
throw MakeTypeError(kNotAnIterator, iterator); throw %make_type_error(kNotAnIterator, iterator);
} }
return iterator; return iterator;
} }
......
...@@ -16,13 +16,11 @@ var GetHash; ...@@ -16,13 +16,11 @@ var GetHash;
var GlobalObject = global.Object; var GlobalObject = global.Object;
var GlobalWeakMap = global.WeakMap; var GlobalWeakMap = global.WeakMap;
var GlobalWeakSet = global.WeakSet; var GlobalWeakSet = global.WeakSet;
var MakeTypeError;
var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
utils.Import(function(from) { utils.Import(function(from) {
GetExistingHash = from.GetExistingHash; GetExistingHash = from.GetExistingHash;
GetHash = from.GetHash; GetHash = from.GetHash;
MakeTypeError = from.MakeTypeError;
}); });
// ------------------------------------------------------------------- // -------------------------------------------------------------------
...@@ -30,7 +28,7 @@ utils.Import(function(from) { ...@@ -30,7 +28,7 @@ utils.Import(function(from) {
function WeakMapConstructor(iterable) { function WeakMapConstructor(iterable) {
if (IS_UNDEFINED(new.target)) { if (IS_UNDEFINED(new.target)) {
throw MakeTypeError(kConstructorNotFunction, "WeakMap"); throw %make_type_error(kConstructorNotFunction, "WeakMap");
} }
%WeakCollectionInitialize(this); %WeakCollectionInitialize(this);
...@@ -38,11 +36,11 @@ function WeakMapConstructor(iterable) { ...@@ -38,11 +36,11 @@ function WeakMapConstructor(iterable) {
if (!IS_NULL_OR_UNDEFINED(iterable)) { if (!IS_NULL_OR_UNDEFINED(iterable)) {
var adder = this.set; var adder = this.set;
if (!IS_CALLABLE(adder)) { if (!IS_CALLABLE(adder)) {
throw MakeTypeError(kPropertyNotFunction, adder, 'set', this); throw %make_type_error(kPropertyNotFunction, adder, 'set', this);
} }
for (var nextItem of iterable) { for (var nextItem of iterable) {
if (!IS_RECEIVER(nextItem)) { if (!IS_RECEIVER(nextItem)) {
throw MakeTypeError(kIteratorValueNotAnObject, nextItem); throw %make_type_error(kIteratorValueNotAnObject, nextItem);
} }
%_Call(adder, this, nextItem[0], nextItem[1]); %_Call(adder, this, nextItem[0], nextItem[1]);
} }
...@@ -52,7 +50,7 @@ function WeakMapConstructor(iterable) { ...@@ -52,7 +50,7 @@ function WeakMapConstructor(iterable) {
function WeakMapGet(key) { function WeakMapGet(key) {
if (!IS_WEAKMAP(this)) { if (!IS_WEAKMAP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'WeakMap.prototype.get', this); 'WeakMap.prototype.get', this);
} }
if (!IS_RECEIVER(key)) return UNDEFINED; if (!IS_RECEIVER(key)) return UNDEFINED;
...@@ -64,17 +62,17 @@ function WeakMapGet(key) { ...@@ -64,17 +62,17 @@ function WeakMapGet(key) {
function WeakMapSet(key, value) { function WeakMapSet(key, value) {
if (!IS_WEAKMAP(this)) { if (!IS_WEAKMAP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'WeakMap.prototype.set', this); 'WeakMap.prototype.set', this);
} }
if (!IS_RECEIVER(key)) throw MakeTypeError(kInvalidWeakMapKey); if (!IS_RECEIVER(key)) throw %make_type_error(kInvalidWeakMapKey);
return %WeakCollectionSet(this, key, value, GetHash(key)); return %WeakCollectionSet(this, key, value, GetHash(key));
} }
function WeakMapHas(key) { function WeakMapHas(key) {
if (!IS_WEAKMAP(this)) { if (!IS_WEAKMAP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'WeakMap.prototype.has', this); 'WeakMap.prototype.has', this);
} }
if (!IS_RECEIVER(key)) return false; if (!IS_RECEIVER(key)) return false;
...@@ -86,7 +84,7 @@ function WeakMapHas(key) { ...@@ -86,7 +84,7 @@ function WeakMapHas(key) {
function WeakMapDelete(key) { function WeakMapDelete(key) {
if (!IS_WEAKMAP(this)) { if (!IS_WEAKMAP(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'WeakMap.prototype.delete', this); 'WeakMap.prototype.delete', this);
} }
if (!IS_RECEIVER(key)) return false; if (!IS_RECEIVER(key)) return false;
...@@ -119,7 +117,7 @@ utils.InstallFunctions(GlobalWeakMap.prototype, DONT_ENUM, [ ...@@ -119,7 +117,7 @@ utils.InstallFunctions(GlobalWeakMap.prototype, DONT_ENUM, [
function WeakSetConstructor(iterable) { function WeakSetConstructor(iterable) {
if (IS_UNDEFINED(new.target)) { if (IS_UNDEFINED(new.target)) {
throw MakeTypeError(kConstructorNotFunction, "WeakSet"); throw %make_type_error(kConstructorNotFunction, "WeakSet");
} }
%WeakCollectionInitialize(this); %WeakCollectionInitialize(this);
...@@ -127,7 +125,7 @@ function WeakSetConstructor(iterable) { ...@@ -127,7 +125,7 @@ function WeakSetConstructor(iterable) {
if (!IS_NULL_OR_UNDEFINED(iterable)) { if (!IS_NULL_OR_UNDEFINED(iterable)) {
var adder = this.add; var adder = this.add;
if (!IS_CALLABLE(adder)) { if (!IS_CALLABLE(adder)) {
throw MakeTypeError(kPropertyNotFunction, adder, 'add', this); throw %make_type_error(kPropertyNotFunction, adder, 'add', this);
} }
for (var value of iterable) { for (var value of iterable) {
%_Call(adder, this, value); %_Call(adder, this, value);
...@@ -138,17 +136,17 @@ function WeakSetConstructor(iterable) { ...@@ -138,17 +136,17 @@ function WeakSetConstructor(iterable) {
function WeakSetAdd(value) { function WeakSetAdd(value) {
if (!IS_WEAKSET(this)) { if (!IS_WEAKSET(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'WeakSet.prototype.add', this); 'WeakSet.prototype.add', this);
} }
if (!IS_RECEIVER(value)) throw MakeTypeError(kInvalidWeakSetValue); if (!IS_RECEIVER(value)) throw %make_type_error(kInvalidWeakSetValue);
return %WeakCollectionSet(this, value, true, GetHash(value)); return %WeakCollectionSet(this, value, true, GetHash(value));
} }
function WeakSetHas(value) { function WeakSetHas(value) {
if (!IS_WEAKSET(this)) { if (!IS_WEAKSET(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'WeakSet.prototype.has', this); 'WeakSet.prototype.has', this);
} }
if (!IS_RECEIVER(value)) return false; if (!IS_RECEIVER(value)) return false;
...@@ -160,7 +158,7 @@ function WeakSetHas(value) { ...@@ -160,7 +158,7 @@ function WeakSetHas(value) {
function WeakSetDelete(value) { function WeakSetDelete(value) {
if (!IS_WEAKSET(this)) { if (!IS_WEAKSET(this)) {
throw MakeTypeError(kIncompatibleMethodReceiver, throw %make_type_error(kIncompatibleMethodReceiver,
'WeakSet.prototype.delete', this); 'WeakSet.prototype.delete', this);
} }
if (!IS_RECEIVER(value)) return false; if (!IS_RECEIVER(value)) return false;
......
...@@ -80,7 +80,7 @@ bytecodes: [ ...@@ -80,7 +80,7 @@ bytecodes: [
/* 15 S> */ B(LdrUndefined), R(0), /* 15 S> */ B(LdrUndefined), R(0),
B(CreateArrayLiteral), U8(0), U8(0), U8(3), B(CreateArrayLiteral), U8(0), U8(0), U8(3),
B(Star), R(1), B(Star), R(1),
B(CallJSRuntime), U8(131), R(0), U8(2), B(CallJSRuntime), U8(134), R(0), U8(2),
/* 44 S> */ B(Return), /* 44 S> */ B(Return),
] ]
constant pool: [ constant pool: [
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment