mirror of
				https://github.com/bellard/quickjs.git
				synced 2025-05-29 01:49:18 +08:00 
			
		
		
		
	raise an error if a private method is added twice to an object
This commit is contained in:
		
							parent
							
								
									daa35bc1e5
								
							
						
					
					
						commit
						9e52965257
					
				@ -7336,6 +7336,12 @@ static int JS_AddBrand(JSContext *ctx, JSValueConst obj, JSValueConst home_obj)
 | 
				
			|||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    p1 = JS_VALUE_GET_OBJ(obj);
 | 
					    p1 = JS_VALUE_GET_OBJ(obj);
 | 
				
			||||||
 | 
					    prs = find_own_property(&pr, p1, brand_atom);
 | 
				
			||||||
 | 
					    if (unlikely(prs)) {
 | 
				
			||||||
 | 
					        JS_FreeAtom(ctx, brand_atom);
 | 
				
			||||||
 | 
					        JS_ThrowTypeError(ctx, "private method is already present");
 | 
				
			||||||
 | 
					        return -1;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    pr = add_property(ctx, p1, brand_atom, JS_PROP_C_W_E);
 | 
					    pr = add_property(ctx, p1, brand_atom, JS_PROP_C_W_E);
 | 
				
			||||||
    JS_FreeAtom(ctx, brand_atom);
 | 
					    JS_FreeAtom(ctx, brand_atom);
 | 
				
			||||||
    if (!pr)
 | 
					    if (!pr)
 | 
				
			||||||
 | 
				
			|||||||
@ -29,13 +29,5 @@ test262/test/language/statements/async-generator/yield-star-promise-not-unwrappe
 | 
				
			|||||||
test262/test/language/statements/async-generator/yield-star-promise-not-unwrapped.js:25: strict mode: TypeError: $DONE() not called
 | 
					test262/test/language/statements/async-generator/yield-star-promise-not-unwrapped.js:25: strict mode: TypeError: $DONE() not called
 | 
				
			||||||
test262/test/language/statements/async-generator/yield-star-return-then-getter-ticks.js:131: TypeError: $DONE() not called
 | 
					test262/test/language/statements/async-generator/yield-star-return-then-getter-ticks.js:131: TypeError: $DONE() not called
 | 
				
			||||||
test262/test/language/statements/async-generator/yield-star-return-then-getter-ticks.js:131: strict mode: TypeError: $DONE() not called
 | 
					test262/test/language/statements/async-generator/yield-star-return-then-getter-ticks.js:131: strict mode: TypeError: $DONE() not called
 | 
				
			||||||
test262/test/language/statements/class/elements/private-method-double-initialisation-get-and-set.js:33: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
 | 
					 | 
				
			||||||
test262/test/language/statements/class/elements/private-method-double-initialisation-get-and-set.js:33: strict mode: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
 | 
					 | 
				
			||||||
test262/test/language/statements/class/elements/private-method-double-initialisation-get.js:32: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
 | 
					 | 
				
			||||||
test262/test/language/statements/class/elements/private-method-double-initialisation-get.js:32: strict mode: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
 | 
					 | 
				
			||||||
test262/test/language/statements/class/elements/private-method-double-initialisation-set.js:32: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
 | 
					 | 
				
			||||||
test262/test/language/statements/class/elements/private-method-double-initialisation-set.js:32: strict mode: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
 | 
					 | 
				
			||||||
test262/test/language/statements/class/elements/private-method-double-initialisation.js:32: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
 | 
					 | 
				
			||||||
test262/test/language/statements/class/elements/private-method-double-initialisation.js:32: strict mode: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
 | 
					 | 
				
			||||||
test262/test/language/statements/for-of/head-lhs-async-invalid.js:14: unexpected error type: Test262: This statement should not be evaluated.
 | 
					test262/test/language/statements/for-of/head-lhs-async-invalid.js:14: unexpected error type: Test262: This statement should not be evaluated.
 | 
				
			||||||
test262/test/language/statements/for-of/head-lhs-async-invalid.js:14: strict mode: unexpected error type: Test262: This statement should not be evaluated.
 | 
					test262/test/language/statements/for-of/head-lhs-async-invalid.js:14: strict mode: unexpected error type: Test262: This statement should not be evaluated.
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user