mirror of
				https://github.com/bellard/quickjs.git
				synced 2025-05-29 01:49:18 +08:00 
			
		
		
		
	fixed class field named get or set
This commit is contained in:
		
							parent
							
								
									d546fbfdb7
								
							
						
					
					
						commit
						949c105aff
					
				
							
								
								
									
										2
									
								
								TODO
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								TODO
									
									
									
									
									
								
							@ -62,6 +62,6 @@ Optimization ideas:
 | 
				
			|||||||
Test262o:   0/11262 errors, 463 excluded
 | 
					Test262o:   0/11262 errors, 463 excluded
 | 
				
			||||||
Test262o commit: 7da91bceb9ce7613f87db47ddd1292a2dda58b42 (es5-tests branch)
 | 
					Test262o commit: 7da91bceb9ce7613f87db47ddd1292a2dda58b42 (es5-tests branch)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Result: 35/76964 errors, 3147 excluded, 6912 skipped
 | 
					Result: 31/76964 errors, 3147 excluded, 6912 skipped
 | 
				
			||||||
Test262 commit: 56e77d6325067a545ea7e8ff5be5d9284334e33c
 | 
					Test262 commit: 56e77d6325067a545ea7e8ff5be5d9284334e33c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										11
									
								
								quickjs.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								quickjs.c
									
									
									
									
									
								
							@ -22248,15 +22248,20 @@ static int __exception js_parse_property_name(JSParseState *s,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    prop_type = PROP_TYPE_IDENT;
 | 
					    prop_type = PROP_TYPE_IDENT;
 | 
				
			||||||
    if (allow_method) {
 | 
					    if (allow_method) {
 | 
				
			||||||
        if (token_is_pseudo_keyword(s, JS_ATOM_get)
 | 
					        /* if allow_private is true (for class field parsing) and
 | 
				
			||||||
        ||  token_is_pseudo_keyword(s, JS_ATOM_set)) {
 | 
					           get/set is following by ';' (or LF with ASI), then it
 | 
				
			||||||
 | 
					           is a field name */
 | 
				
			||||||
 | 
					        if ((token_is_pseudo_keyword(s, JS_ATOM_get) ||
 | 
				
			||||||
 | 
					             token_is_pseudo_keyword(s, JS_ATOM_set)) &&
 | 
				
			||||||
 | 
					            (!allow_private || peek_token(s, TRUE) != '\n')) {
 | 
				
			||||||
            /* get x(), set x() */
 | 
					            /* get x(), set x() */
 | 
				
			||||||
            name = JS_DupAtom(s->ctx, s->token.u.ident.atom);
 | 
					            name = JS_DupAtom(s->ctx, s->token.u.ident.atom);
 | 
				
			||||||
            if (next_token(s))
 | 
					            if (next_token(s))
 | 
				
			||||||
                goto fail1;
 | 
					                goto fail1;
 | 
				
			||||||
            if (s->token.val == ':' || s->token.val == ',' ||
 | 
					            if (s->token.val == ':' || s->token.val == ',' ||
 | 
				
			||||||
                s->token.val == '}' || s->token.val == '(' ||
 | 
					                s->token.val == '}' || s->token.val == '(' ||
 | 
				
			||||||
                s->token.val == '=') {
 | 
					                s->token.val == '=' ||
 | 
				
			||||||
 | 
					                (s->token.val == ';' && allow_private)) {
 | 
				
			||||||
                is_non_reserved_ident = TRUE;
 | 
					                is_non_reserved_ident = TRUE;
 | 
				
			||||||
                goto ident_found;
 | 
					                goto ident_found;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
				
			|||||||
@ -23,10 +23,6 @@ test262/test/language/expressions/object/computed-property-name-topropertykey-be
 | 
				
			|||||||
test262/test/language/expressions/object/computed-property-name-topropertykey-before-value-evaluation.js:31: strict mode: Test262Error: Expected SameValue(«"bad"», «"ok"») to be true
 | 
					test262/test/language/expressions/object/computed-property-name-topropertykey-before-value-evaluation.js:31: strict mode: Test262Error: Expected SameValue(«"bad"», «"ok"») to be true
 | 
				
			||||||
test262/test/language/module-code/top-level-await/async-module-does-not-block-sibling-modules.js:13: SyntaxError: Could not find export 'check' in module 'test262/test/language/module-code/top-level-await/async-module-sync_FIXTURE.js'
 | 
					test262/test/language/module-code/top-level-await/async-module-does-not-block-sibling-modules.js:13: SyntaxError: Could not find export 'check' in module 'test262/test/language/module-code/top-level-await/async-module-sync_FIXTURE.js'
 | 
				
			||||||
test262/test/language/module-code/top-level-await/module-graphs-does-not-hang.js:10: TypeError: $DONE() not called
 | 
					test262/test/language/module-code/top-level-await/module-graphs-does-not-hang.js:10: TypeError: $DONE() not called
 | 
				
			||||||
test262/test/language/statements/class/elements/syntax/valid/grammar-field-named-get-followed-by-generator-asi.js:40: SyntaxError: invalid property name
 | 
					 | 
				
			||||||
test262/test/language/statements/class/elements/syntax/valid/grammar-field-named-get-followed-by-generator-asi.js:40: strict mode: SyntaxError: invalid property name
 | 
					 | 
				
			||||||
test262/test/language/statements/class/elements/syntax/valid/grammar-field-named-set-followed-by-generator-asi.js:40: SyntaxError: invalid property name
 | 
					 | 
				
			||||||
test262/test/language/statements/class/elements/syntax/valid/grammar-field-named-set-followed-by-generator-asi.js:40: strict mode: SyntaxError: invalid property name
 | 
					 | 
				
			||||||
test262/test/language/statements/with/get-binding-value-call-with-proxy-env.js:39: Test262Error: Actual [has:Object, get:Symbol(Symbol.unscopables), get:Object] and expected [has:Object, get:Symbol(Symbol.unscopables), has:Object, get:Object] should have the same contents. 
 | 
					test262/test/language/statements/with/get-binding-value-call-with-proxy-env.js:39: Test262Error: Actual [has:Object, get:Symbol(Symbol.unscopables), get:Object] and expected [has:Object, get:Symbol(Symbol.unscopables), has:Object, get:Object] should have the same contents. 
 | 
				
			||||||
test262/test/language/statements/with/get-binding-value-idref-with-proxy-env.js:39: Test262Error: Actual [has:Object, get:Symbol(Symbol.unscopables), get:Object] and expected [has:Object, get:Symbol(Symbol.unscopables), has:Object, get:Object] should have the same contents. 
 | 
					test262/test/language/statements/with/get-binding-value-idref-with-proxy-env.js:39: Test262Error: Actual [has:Object, get:Symbol(Symbol.unscopables), get:Object] and expected [has:Object, get:Symbol(Symbol.unscopables), has:Object, get:Object] should have the same contents. 
 | 
				
			||||||
test262/test/language/statements/with/get-mutable-binding-binding-deleted-in-get-unscopables-strict-mode.js:21: Test262Error: Expected a ReferenceError to be thrown but no exception was thrown at all
 | 
					test262/test/language/statements/with/get-mutable-binding-binding-deleted-in-get-unscopables-strict-mode.js:21: Test262Error: Expected a ReferenceError to be thrown but no exception was thrown at all
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user