8f9c38b128
Failures generate a StrongModeError. Fixes #236. Partially addresses #238. Some issues to do: - We're too eager to throw a StrongModeError. E.g., <int>[] is List<String> will throw. - We don't differentiate between implicit and explicit casts. R=leafp@google.com Review URL: https://codereview.chromium.org/1298893003 .
42 lines
1.5 KiB
JavaScript
42 lines
1.5 KiB
JavaScript
// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
/*
|
|
* This library encapsulates the core sdk errors that the runtime knows about.
|
|
*
|
|
*/
|
|
|
|
dart_library.library('dart_runtime/_errors', null, /* Imports */[
|
|
], /* Lazy Imports */[
|
|
'dart_runtime/_operations',
|
|
'dart/core',
|
|
'dart/_js_helper'
|
|
], function(exports, operations, core, _js_helper) {
|
|
'use strict';
|
|
|
|
function throwNoSuchMethod(obj, name, pArgs, nArgs, extras) {
|
|
operations.throw(new core.NoSuchMethodError(obj, name, pArgs, nArgs, extras));
|
|
}
|
|
exports.throwNoSuchMethod = throwNoSuchMethod;
|
|
|
|
function throwCastError(actual, type) {
|
|
operations.throw(new _js_helper.CastErrorImplementation(actual, type));
|
|
}
|
|
exports.throwCastError = throwCastError;
|
|
|
|
function throwAssertionError() {
|
|
operations.throw(new core.AssertionError());
|
|
}
|
|
exports.throwAssertionError = throwAssertionError;
|
|
|
|
function throwNullValueError() {
|
|
// TODO(vsm): Per spec, we should throw an NSM here. Technically, we ought
|
|
// to thread through method info, but that uglifies the code and can't
|
|
// actually be queried ... it only affects how the error is printed.
|
|
operations.throw(new core.NoSuchMethodError(null,
|
|
new core.Symbol('<Unexpected Null Value>'), null, null, null));
|
|
}
|
|
exports.throwNullValueError = throwNullValueError;
|
|
});
|