Support syntax error feedback in parser.
Now, parser correctly finishes parse procedure if syntax of source code is incorrect (syntax correctness is indicated using return value): - parser-internal memory management is performed using jsp_mm_alloc / jsp_mm_free; - upon detection of incorrect syntax, all parser-allocated memory regions are deallocated using jsp_mm_free_all and parse finishes with corresponding return value. JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
This commit is contained in:
@@ -86,3 +86,14 @@ for (var i = 0; i < 100; i++)
|
||||
r = eval ('if (true) 3; else 5;');
|
||||
assert (r === 3);
|
||||
}
|
||||
|
||||
// Check SyntaxError handling
|
||||
try
|
||||
{
|
||||
eval ('var var;');
|
||||
assert (false);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
assert (e instanceof SyntaxError);
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2014 Samsung Electronics Co., Ltd.
|
||||
// Copyright 2014-2015 Samsung Electronics Co., Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
@@ -79,3 +79,14 @@ catch (e)
|
||||
{
|
||||
assert (e instanceof TypeError);
|
||||
}
|
||||
|
||||
// Check SyntaxError handling
|
||||
try
|
||||
{
|
||||
new Function ('var var;');
|
||||
assert (false);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
assert (e instanceof SyntaxError);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user