Chromium Code Reviews| Index: test/cctest/test-parsing.cc |
| diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc |
| index 594e3773f0bd4ab965411358dcc4cacafe5daf67..0f124ae27cab989b01dadc9d4d19632d1c116b59 100644 |
| --- a/test/cctest/test-parsing.cc |
| +++ b/test/cctest/test-parsing.cc |
| @@ -4681,13 +4681,32 @@ TEST(BasicImportExportParsing) { |
| "function f() {}; f(); export { f };", |
| "var a, b, c; export { a, b as baz, c };", |
| "var d, e; export { d as dreary, e, };", |
| - "import y from 'http://module.com/foo.js';", |
| "export default function f() {}", |
| "export default class C {}", |
| "export default 42", |
| "var x; export default x = 7", |
| "export { Q } from 'somemodule.js';", |
| - "export * from 'somemodule.js';" |
| + "export * from 'somemodule.js';", |
| + "var foo; export { foo as for };", |
| + "export { arguments } from 'm.js';", |
| + "export { for } from 'm.js';", |
| + "export { yield } from 'm.js'", |
| + "export { static } from 'm.js'", |
| + "export { let } from 'm.js'", |
| + |
| + "import 'somemodule.js';", |
| + "import { } from 'm.js';", |
| + "import { a } from 'm.js';", |
| + "import { a, b as d, c, } from 'm.js';", |
| + "import * as thing from 'm.js';", |
| + "import thing from 'm.js';", |
| + "import thing, * as rest from 'm.js';", |
| + "import thing, { a, b, c } from 'm.js';", |
| + "import { arguments as a } from 'm.js';", |
| + "import { for as f } from 'm.js';", |
| + "import { yield as y } from 'm.js';", |
| + "import { static as s } from 'm.js';", |
| + "import { let as l } from 'm.js';", |
| }; |
| i::Isolate* isolate = CcTest::i_isolate(); |
| @@ -4720,7 +4739,22 @@ TEST(BasicImportExportParsing) { |
| parser.set_allow_harmony_modules(true); |
| parser.set_allow_harmony_scoping(true); |
| info.MarkAsModule(); |
| - CHECK(parser.Parse()); |
| + if (!parser.Parse()) { |
| + i::Handle<i::JSObject> exception_handle( |
| + i::JSObject::cast(isolate->pending_exception())); |
| + i::Handle<i::String> message_string = |
| + i::Handle<i::String>::cast(i::Object::GetProperty( |
| + isolate, exception_handle, "message").ToHandleChecked()); |
| + |
| + v8::base::OS::Print( |
| + "Parser failed on:\n" |
| + "\t%s\n" |
| + "with error:\n" |
| + "\t%s\n" |
| + "However, we expected no error.", |
| + source->ToCString().get(), message_string->ToCString().get()); |
| + CHECK(false); |
| + } |
| } |
| // And that parsing a script does not. |
| @@ -4761,6 +4795,31 @@ TEST(ImportExportParsingErrors) { |
| "export * from;", |
| "export { Q } from;", |
| "export default from 'module.js';", |
| + "export { for }", |
| + "export { for as foo }", |
| + "export { arguments }", |
| + "export { arguments as foo }", |
| + |
| + "import from;", |
| + "import from 'm.js';", |
| + "import { };", |
| + "import {;", |
| + "import };", |
| + "import { , };", |
| + "import { , } from 'm.js';", |
| + "import { a } from;", |
| + "import { a } 'm.js';", |
| + "import a , from 'm.js';", |
| + "import a { b, c } from 'm.js';", |
| + "import arguments from 'm.js';", |
| + "import eval from 'm.js';", |
| + "import { arguments } from 'm.js';", |
| + "import { eval } from 'm.js';", |
| + "import { a as arguments } from 'm.js';", |
| + "import { for } from 'm.js';", |
| + "import { y as yield } from 'm.js'", |
| + "import { s as static } from 'm.js'", |
| + "import { l as let } from 'm.js'", |
|
arv (Not doing code reviews)
2015/01/30 02:34:45
Maybe add?
import {x}, def from 'm.js';
import de
adamk
2015/01/30 03:04:19
Thanks, added, plus another bogus form.
|
| // TODO(ES6): These two forms should be supported |
| "export default function() {};", |