Changeset 214016 in webkit for trunk/Source/JavaScriptCore/jsc.cpp
- Timestamp:
- Mar 15, 2017, 3:49:36 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jsc.cpp
r213690 r214016 391 391 return throwVMTypeError(exec, scope); 392 392 bool shouldThrow = thisObject->get(exec, PropertyName(Identifier::fromString(exec, "shouldThrow"))).toBoolean(exec); 393 RETURN_IF_EXCEPTION(scope, encodedJSValue()); 393 394 if (shouldThrow) 394 395 return throwVMTypeError(exec, scope); … … 1595 1596 1596 1597 JSInternalPromiseDeferred* deferred = JSInternalPromiseDeferred::create(exec, globalObject); 1598 RELEASE_ASSERT(!scope.exception()); 1597 1599 const Identifier key = keyValue.toPropertyKey(exec); 1598 1600 if (UNLIKELY(scope.exception())) { … … 1630 1632 if (!directoryName) 1631 1633 return deferred->reject(exec, createError(exec, makeString("Could not resolve the referrer name '", String(referrer.impl()), "'."))); 1632 return deferred->resolve(exec, jsString(exec, resolvePath(directoryName.value(), ModuleName(key.impl())))); 1634 auto result = deferred->resolve(exec, jsString(exec, resolvePath(directoryName.value(), ModuleName(key.impl())))); 1635 RELEASE_ASSERT(!scope.exception()); 1636 return result; 1633 1637 } 1634 1638 … … 1718 1722 return deferred->reject(exec, createError(exec, makeString("Could not open file '", moduleKey, "'."))); 1719 1723 1720 return deferred->resolve(exec, JSSourceCode::create(exec->vm(), makeSource(stringFromUTF(utf8), SourceOrigin { moduleKey }, moduleKey, TextPosition(), SourceProviderSourceType::Module))); 1724 auto result = deferred->resolve(exec, JSSourceCode::create(exec->vm(), makeSource(stringFromUTF(utf8), SourceOrigin { moduleKey }, moduleKey, TextPosition(), SourceProviderSourceType::Module))); 1725 RELEASE_ASSERT(!scope.exception()); 1726 return result; 1721 1727 } 1722 1728 … … 2095 2101 2096 2102 JSArray* array = constructEmptyArray(globalObject->globalExec(), 0); 2097 for (unsigned i = 1; i < exec->argumentCount(); ++i) 2103 RETURN_IF_EXCEPTION(scope, encodedJSValue()); 2104 for (unsigned i = 1; i < exec->argumentCount(); ++i) { 2098 2105 array->putDirectIndex(globalObject->globalExec(), i - 1, exec->uncheckedArgument(i)); 2106 RETURN_IF_EXCEPTION(scope, encodedJSValue()); 2107 } 2099 2108 globalObject->putDirect( 2100 2109 vm, Identifier::fromString(globalObject->globalExec(), "arguments"), array); … … 2125 2134 2126 2135 JSArray* array = constructEmptyArray(globalObject->globalExec(), 0); 2127 for (unsigned i = 1; i < exec->argumentCount(); ++i) 2136 RETURN_IF_EXCEPTION(scope, encodedJSValue()); 2137 for (unsigned i = 1; i < exec->argumentCount(); ++i) { 2128 2138 array->putDirectIndex(globalObject->globalExec(), i - 1, exec->uncheckedArgument(i)); 2139 RETURN_IF_EXCEPTION(scope, encodedJSValue()); 2140 } 2129 2141 globalObject->putDirect( 2130 2142 vm, Identifier::fromString(globalObject->globalExec(), "arguments"), array); … … 2918 2930 2919 2931 promise->then(exec, nullptr, errorHandler); 2932 RETURN_IF_EXCEPTION(scope, encodedJSValue()); 2920 2933 vm.drainMicrotasks(); 2921 2934 if (error) … … 2960 2973 ParserError error; 2961 2974 bool validSyntax = checkModuleSyntax(exec, makeSource(source, { }, String(), TextPosition(), SourceProviderSourceType::Module), error); 2975 RETURN_IF_EXCEPTION(scope, encodedJSValue()); 2962 2976 stopWatch.stop(); 2963 2977 … … 3052 3066 static JSValue box(ExecState* exec, VM& vm, JSValue wasmValue) 3053 3067 { 3068 auto scope = DECLARE_CATCH_SCOPE(vm); 3054 3069 3055 3070 JSString* type = asString(wasmValue.get(exec, makeIdentifier(vm, "type"))); 3071 ASSERT_UNUSED(scope, !scope.exception()); 3056 3072 JSValue value = wasmValue.get(exec, makeIdentifier(vm, "value")); 3073 ASSERT(!scope.exception()); 3057 3074 3058 3075 auto unboxString = [&] (const char* hexFormat, const char* decFormat, auto& result) { … … 3309 3326 3310 3327 Identifier nameID = Identifier::fromString(globalObject->globalExec(), "name"); 3328 CHECK_EXCEPTION(); 3311 3329 Identifier fileNameID = Identifier::fromString(globalObject->globalExec(), "sourceURL"); 3330 CHECK_EXCEPTION(); 3312 3331 Identifier lineNumberID = Identifier::fromString(globalObject->globalExec(), "line"); 3332 CHECK_EXCEPTION(); 3313 3333 Identifier stackID = Identifier::fromString(globalObject->globalExec(), "stack"); 3314 3334 CHECK_EXCEPTION(); 3335 3315 3336 JSValue nameValue = exception.get(globalObject->globalExec(), nameID); 3316 3337 CHECK_EXCEPTION(); … … 3405 3426 scriptBuffer.append("\"use strict\";\n", strlen("\"use strict\";\n")); 3406 3427 3407 if (isModule) 3428 if (isModule) { 3408 3429 promise = loadAndEvaluateModule(globalObject->globalExec(), fileName); 3409 else { 3430 RELEASE_ASSERT(!scope.exception()); 3431 } else { 3410 3432 if (!fetchScriptFromLocalFileSystem(fileName, scriptBuffer)) 3411 3433 return false; // fail early so we can catch missing files … … 3435 3457 3436 3458 promise->then(globalObject->globalExec(), fulfillHandler, rejectHandler); 3459 RELEASE_ASSERT(!scope.exception()); 3437 3460 vm.drainMicrotasks(); 3438 3461 } else {
Note:
See TracChangeset
for help on using the changeset viewer.